借鑒了網(wǎng)上串口代碼在ch32v上編寫(xiě)了串口接收中斷,發(fā)現(xiàn)只能執(zhí)行一次,后參考了沁恒官方代碼,發(fā)現(xiàn)需要加上屬性聲明解決
void USART1_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));
這個(gè)問(wèn)題可能從stm32轉(zhuǎn)過(guò)來(lái)的朋友會(huì)遇到,stm32串口編程中無(wú)此聲明,__attribute__應(yīng)該是gcc編譯器所需,告訴編譯器此為中斷函數(shù),進(jìn)出需要設(shè)置清除中斷標(biāo)志位。
以上寫(xiě)成void USART1_IRQHandler(void) __attribute__((interrupt()));也能夠執(zhí)行,但要充分利用沁恒快速中斷優(yōu)勢(shì)最好寫(xiě)成上面那句。