diff --git a/APP_Framework/Applications/app_test/test_can.c b/APP_Framework/Applications/app_test/test_can.c index c19abecdb..c6463bc27 100644 --- a/APP_Framework/Applications/app_test/test_can.c +++ b/APP_Framework/Applications/app_test/test_can.c @@ -60,7 +60,6 @@ void TestCAN(void) frame_send.stdid = 0x55; frame_send.rtr=0; frame_send.data_lenth=8; - frame_send.data = data_buff; struct CanSendConfigure frame_recv; uint8_t recv_buff[65U] = {0}; @@ -69,13 +68,20 @@ void TestCAN(void) // CAN write while (1) { - PrivTaskDelay(500); - PrivWrite(can_fd, &frame_send, NONE); - PrivTaskDelay(500); + // PrivTaskDelay(500); + // PrivWrite(can_fd, &frame_send, NONE); + // PrivTaskDelay(500); PrivRead(can_fd, &frame_recv, NONE); // if any data has received,Then printf message if(frame_recv.data_lenth > 0){ - printf("ID %08x:%s\n",frame_recv.exdid,frame_recv.data); + printf("ID %08x : \n",frame_recv.exdid); + for(int i = 0; i < frame_recv.data_lenth; i ++) { + printf("0x%x ", frame_recv.data[i]); + } + printf("\n"); + + frame_send.data = recv_buff; + PrivWrite(can_fd, &frame_send, NONE); } } diff --git a/APP_Framework/Applications/app_test/test_timer.c b/APP_Framework/Applications/app_test/test_timer.c index 35ec844e3..85059535e 100644 --- a/APP_Framework/Applications/app_test/test_timer.c +++ b/APP_Framework/Applications/app_test/test_timer.c @@ -23,12 +23,13 @@ void TimerFunction(union sigval sig_val) { static int cnt = 0; - printf("%s cnt %d\n", __func__, cnt++); + printf("%s cnt %d ms %d\n", __func__, cnt++, PrivGetTickTime()); } void TestTimer(void) { int ret = 0; + static int count = 0; int timer_flags; timer_t timer_id; struct sigevent evp; @@ -40,7 +41,9 @@ void TestTimer(void) evp.sigev_notify_function = TimerFunction; evp.sigev_notify_attributes = &timer_flags; - ret = timer_create(CLOCK_REALTIME, &evp, &timer_id); + count++; + + ret = PrivTimerCreate(count, &evp, &timer_id); if (ret < 0) { printf("%s create timer failed ret %d\n", __func__, ret); return; @@ -48,14 +51,14 @@ void TestTimer(void) struct itimerspec value; //active time interval - value.it_interval.tv_sec = 2; - value.it_interval.tv_nsec = 0; + value.it_interval.tv_sec = 0; + value.it_interval.tv_nsec = 1000000 * 10; //first timer set time value.it_value.tv_sec = 2; value.it_value.tv_nsec = 0; - ret = timer_settime(timer_id, 1, &value, NULL); + ret = PrivTimerModify(timer_id, 1, &value, NULL); if (ret < 0) { printf("%s set timer time failed ret %d\n", __func__, ret); return; diff --git a/Ubiquitous/XiZi_IIoT/board/edu-arm32/third_party_driver/can/connect_can.c b/Ubiquitous/XiZi_IIoT/board/edu-arm32/third_party_driver/can/connect_can.c index 088892e67..df7842f50 100644 --- a/Ubiquitous/XiZi_IIoT/board/edu-arm32/third_party_driver/can/connect_can.c +++ b/Ubiquitous/XiZi_IIoT/board/edu-arm32/third_party_driver/can/connect_can.c @@ -24,27 +24,29 @@ Others: connect_can.c for references #define CAN_X (CM_CAN2) -#define CAN_TX_PORT (GPIO_PORT_D) -#define CAN_TX_PIN (GPIO_PIN_07) -#define CAN_RX_PORT (GPIO_PORT_D) -#define CAN_RX_PIN (GPIO_PIN_06) -#define CAN_TX_PIN_FUNC (GPIO_FUNC_62) -#define CAN_RX_PIN_FUNC (GPIO_FUNC_63) +#define CAN_TX_PORT (GPIO_PORT_D) +#define CAN_TX_PIN (GPIO_PIN_07) +#define CAN_RX_PORT (GPIO_PORT_D) +#define CAN_RX_PIN (GPIO_PIN_06) +#define CAN_TX_PIN_FUNC (GPIO_FUNC_62) +#define CAN_RX_PIN_FUNC (GPIO_FUNC_63) #define INTSEL_REG ((uint32_t)(&CM_INTC->SEL0)) #define CANX_IRQ_SRC INT_SRC_CAN2_HOST #define CANX_IRQ_NUM 17 #define IRQ_NUM_OFFSET 16 -#define CAN_AF1_ID (0x123UL) -#define CAN_AF1_ID_MSK (0xFFFUL) -#define CAN_AF1_MSK_TYPE CAN_ID_STD -#define CAN_AF2_ID (0x005UL) -#define CAN_AF2_ID_MSK (0x00FUL) -#define CAN_AF2_MSK_TYPE CAN_ID_STD -#define CAN_AF3_ID (0x23UL) -#define CAN_AF3_ID_MSK (0xFFUL) -#define CAN_AF3_MSK_TYPE CAN_ID_STD +#define CAN_AF1_ID (0x123UL) +#define CAN_AF1_ID_MSK (0xFFFUL) +#define CAN_AF1_MSK_TYPE CAN_ID_STD + +#define CAN_AF2_ID (0x005UL) +#define CAN_AF2_ID_MSK (0x00FUL) +#define CAN_AF2_MSK_TYPE CAN_ID_STD + +#define CAN_AF3_ID (0x23UL) +#define CAN_AF3_ID_MSK (0xFFUL) +#define CAN_AF3_MSK_TYPE CAN_ID_STD #ifdef CAN_USING_INTERRUPT void CanIrqHandler(int vector, void *param) @@ -95,18 +97,9 @@ static void CanInit(struct CanDriverConfigure *can_drv_config) stcInit.stcBitCfg.u32TimeSeg2 = can_drv_config->tbs2; stcInit.u8WorkMode = can_drv_config->mode; -#ifdef CAN_USING_FD - stcInit.stcFDCfg.u8TDCSSP = 16U; - stcInit.stcFDCfg.u8CANFDMode = CAN_FD_MODE_ISO_11898; - stcInit.stcFDCfg.stcFBT.u32SEG1 = 16U; - stcInit.stcFDCfg.stcFBT.u32SEG2 = 4U; - stcInit.stcFDCfg.stcFBT.u32SJW = 4U; - stcInit.stcFDCfg.stcFBT.u32Prescaler = 1U; - (void)CAN_FD_Init(APP_CAN_UNIT, &stcInit); -#else FCG_Fcg1PeriphClockCmd(PWC_FCG1_CAN2, ENABLE); (void)CAN_Init(CAN_X, &stcInit); -#endif + CAN_ClearStatus(CAN_X, 0xFFFFFFFFU); #ifdef CAN_USING_INTERRUPT