完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请问ch57X 的串口中断,如果接收到的数据长度和FIFO设置的一样,是不是只能进入UART_II_RECV_RDY,而不会触发UART_II_RECV_TOUT?
那这样的话UART_II_RECV_TOUT这个中断感觉并没有什么用啊? 我的串口初始化配置: ``` /* 配置UART3 */ GPIOA_SetBits( GPIO_Pin_5 ); GPIOA_ModeCfg( GPIO_Pin_4, GPIO_ModeIN_PU ); // RXD-配置上拉输入 GPIOA_ModeCfg( GPIO_Pin_5, GPIO_ModeOut_PP_5mA ); // TXD-配置推挽输出,注意先让IO口输出高电平 UART3_DefInit( ); UART3_BaudRateCfg( 9600 ); UART3_ByteTrigCfg( UART_7BYTE_TRIG ); UART3_INTCfg( ENABLE, RB_IER_RECV_RDY ); PFIC_EnableIRQ( UART3_IRQn ); UART3_Data.RxCount = 0; ``` 我的中断接收: ``` __attribute__( ( interrupt( "WCH-Interrupt-fast" ) ) ) __attribute__( ( section( ".highcode" ) ) ) void UART3_IRQHandler( void ) { switch ( UART3_GetITFlag( ) ) { case UART_II_RECV_RDY : // 数据达到设置触发点 UART3_Data.RxCount += UART3_RecvString( UART3_Data.RxBuff+UART3_Data.RxCount ); // 拷贝数据 break; case UART_II_RECV_TOUT : // 接收超时,暂时一帧数据接收完成 UART3_Data.RxCount += UART3_RecvString( UART3_Data.RxBuff+UART3_Data.RxCount ); // 拷贝结尾数据 UART3_Logic_Handler( ); UART3_Data.RxCount = 0; break; default : break; } } ``` 这个代码的效果是如果接受到的数据长度是 7 的整数倍,那只会进入 UART_II_RECV_RDY 中断, 其他情况,如果小于7字节会进入 UART_II_RECV_TOUT 中断。 如果大于7字节则会在接收完毕之前进入n次UART_II_RECV_RDY 中断,最后再进入一次UART_II_RECV_TOUT 中断。 请问7字节及其整数倍的时候只能自己判断是不是接受完毕吗?那UART_II_RECV_TOUT中断没有意义啊? |
|
相关推荐
1个回答
|
|
主贴提供的代码中,代码" UART3_ByteTrigCfg( UART_7BYTE_TRIG ); "的作用是:
当串口硬件RX fifo中的数据达到7字节时候,将产生UART_II_RECV_RDY 中断, 换句话说,只有当该串口的硬件RX FIFO 大于等于7字节才会产生该中断, 如果一次接收, 前面的数据已经在UART_II_RECV_RDY中取走,剩下的硬件RX FIFO里仍然有数据,而又连续4个byte的时间不再接收到数据进来, 即会在触发UART_II_RECV_TOUT 此时读取硬件RX FIFO 里的数据方法与UART_II_RECV_RDY 一致. |
|
|
|
只有小组成员才能发言,加入小组>>
531 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2907 浏览 2 评论
2402 浏览 1 评论
876浏览 2评论
693浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
423浏览 1评论
535浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
819浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 16:01 , Processed in 1.057665 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号