CH573當(dāng)同時(shí)使能2個以上串口中斷時(shí)就會不斷重新復(fù)位,怎么解決?

您好!

?CH573的串口使能1個串口中斷時(shí)一切正常,但是當(dāng)使能2個或以上串口中斷時(shí)就出現(xiàn)程序不斷重啟的狀況,應(yīng)該怎么解決?我要同時(shí)使用4個串口中斷,是否需要設(shè)置中斷優(yōu)先級?

串口初始化的代碼如下:



void Uart0_Init(void)

{

? ? //---UART0 INIT-------------波特率512000

? ? GPIOPinRemap( DISABLE, RB_PIN_UART0 );? //不使能重映射

? ? //TXD gpio初始化

? ? GPIOB_SetBits(bTXD0);

? ? GPIOB_ModeCfg(bTXD0, GPIO_ModeOut_PP_5mA);

? ? //RXD gpio初始化

? ? GPIOB_SetBits(bRXD0);

? ? GPIOB_ModeCfg(bRXD0, GPIO_ModeIN_PU);

? ? //uart0 init

? ? UART0_DefInit();


#ifdef LDS_ENABLE

? ? ? ? //enable interupt

? ? ? ? UART0_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_LINE_STAT);

? ? ? ? PFIC_EnableIRQ(UART0_IRQn);

? ? ? ? //PFIC_SetPriority(UART0_IRQn,0x40);? //設(shè)置為中優(yōu)先級中斷

#endif

? ? }


void Uart1_Init(void)

{

? ? //---UART1 INIT-------------波特率115200

? ? //---GPS-----

? ? GPIOPinRemap( DISABLE, RB_PIN_UART1 );? //不使能重映射

? ? //TXD gpio初始化

? ? GPIOA_SetBits(bTXD1);

? ? GPIOA_ModeCfg(bTXD1, GPIO_ModeOut_PP_5mA);

? ? //RXD gpio初始化

? ? GPIOA_SetBits(bRXD1);

? ? GPIOA_ModeCfg(bRXD1, GPIO_ModeIN_PU);

? ? //uart1 init

? ? UART1_DefInit();


#ifdef GPS_ENABLE

? ? //enable interupt

? ? UART1_INTCfg(ENABLE, RB_IER_RECV_RDY | RB_IER_LINE_STAT);

? ? PFIC_EnableIRQ(UART1_IRQn);

#endif

}


謝謝!

您好,可以參考以下串口2和串口3間透傳的博客。

CH582m串口透傳程序 - JayWell - 博客園 (cnblogs.com)

微信圖片_20230210164113.png

出現(xiàn)不斷重啟的情況時(shí),可以在hardfault函數(shù)中加打印,查看有沒有數(shù)組溢出。

CH57x/CH58x/CH32V wch risc-v 芯片hardfault問題追蹤&程序卡死追蹤 - iot-fan - 博客園 (cnblogs.com)


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频