IRQHandler /* 16:Window Watchdog Timer */ .word LVD_IRQHandler /* 17:LVD through EXTI Line detect */ .word TAMPER_IRQHandler /* 18:Tamper Interrupt */ .wor
void USB_LP_CAN1_RX0_IRQHandler(void) {……if (istr & ISTR_ESOF){if (USBD_P_Error_Event){USBD_P_Error_Event(3);}ISTR = ~ISTR_ESOF;}……} 这下串口助手一下子丝滑了,舒服!
4.3 接收CAN报文//中断服务函数,接收CAN报文void USBD_LP_CAN0_RX0_IRQHandler(void){if(can_...
if (usb_rx_ch == -1) usb_rx_ch = USBD_CDC_ACM_GetChar(); …… } } 然后看到这个标志一直在,未清除导致。 但很奇怪的事,该代码在 ST 里面跑的挺好的。不管它,加上处理: void USB_LP_CAN1_RX0_IRQHandler(void) { …… if (istr & ISTR_ESOF) { if (USBD_P_Error_Event) { USBD...
< ADC0 and ADC1 interrupt */#ifdef GD32F10X_MD USBD_HP_CAN0_TX_IRQn = 19, /*!< CAN0 TX interrupts */ USBD_LP_CAN0_RX0_IRQn = 20, /*!< CAN0 RX0 interrupts */ CAN0_RX1_IRQn = 21, /*!< CAN0 RX1 interrupts */ CAN0_EWMC_IRQn = 22, /*!< CAN0 EWMC interrupts ...
当数据发送完成后 , MCU 进入 USBD_LP_CAN0_TX_IRQHandler , 代码执行到 IN 事务处理分支 udev->ep_transc[ep_num][TRANSC_IN](udev, ep_num),即 data in 事务处理函数,表明此次 IN 传输完成.在 data in 事务处理函数中,用户可以添加相应处理,如置位发送完成标志等. 在其他应用中,可能会存在 OUT ...
比如现在要设置SPI0的中断,其抢占优先级和子优先级的位数均为2,抢占优先级的等级为0,子优先级 的等级为1,那么代码如代码清单SPI0中断优先级设置所示。 nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2); nvic_irq_enable(SPI0_IRQn,0,1); 有关这两个函数的原型以及函数参数的说明,请见代码清单nvic_...
比如现在要设置SPI0的中断,其抢占优先级和子优先级的位数均为2,抢占优先级的等级为0,子优先级 的等级为1,那么代码如代码清单SPI0中断优先级设置所示。 nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2); nvic_irq_enable(SPI0_IRQn,0,1); 有关这两个函数的原型以及函数参数的说明,请见代码清单nvic_...
< DMA0 channel6 interrupt */ ADC0_1_IRQn = 18, /*!< ADC0 and ADC1 interrupt */ #ifdef GD32F10X_MD USBD_HP_CAN0_TX_IRQn = 19, /*!< CAN0 TX interrupts */ USBD_LP_CAN0_RX0_IRQn = 20, /*!< CAN0 RX0 interrupts */ CAN0_RX1_IRQn = 21, /*!< CAN0 RX1 interrupts...
_IRQHandler .word ADC_1_IRQHandler .word USB_HP_CAN0_TX_IRQHandler .word USBD_LP_CAN0_RX0_IRQHandler .word CAN0_RX1_IRQHandler .word CAN0_EWMC_IRQHandler .wordEXTI5_9_IRQHandler .word TIMER_BRK_IRQHandler .word TIMER0UP_IRQHandler .word TIMER0_TRGCMT_IRQHandler ...