完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
UART5参考规格描述确认超时是否有效,配置TOIC时间(这里选择80(即80个波特率时间)),TOCNTEN计数使能,RXTOIEN中断使能,发送5个BYTE的数据,均能正常中断并读取成功,但5个BYTE之后并未看看接收超时中断置位,为什么?
参数函数设置如下: UART_SettimeoutCnt(UART5,80); // 配置时间并使能计数功能 void UART_SetTimeoutCnt(UART_T* uart, uint32_t u32TOC)//底层库函数 { uart->TOUT = (uart->TOUT & ~UART_TOUT_TOIC_Msk)| (u32TOC); uart->INTEN |= UART_INTEN_TOCNTEN_Msk; } UART_ENABLE_INT(UART5, (UART_INTEN_RDAIEN_Msk|UART_INTEN_RXTOIEN_Msk )); // 使能接收中断,接收超时中断 NVIC_EnableIRQ(UART5_IRQn);// 使能总中断 void UART5_IRQHandler(void) { u8 Readbuffer=0; u32IntSts= UART5->INTSTS; if(u32IntSts&UART_INTSTS_RXTOIF_Msk)//超时判断 { UART_WRITE(UART5,0x88); } if(u32IntSts & UART_INTSTS_RDAINT_Msk) { Readbuffer=UART_READ(UART5); //读取数据,清标志 UART_WRITE(UART5,Readbuffer); } } |
|
相关推荐
1个回答
|
|
在您的代码中,我注意到您只配置了接收超时的计数和使能,但没有在相应的中断标志中使能接收超时中断。
要使接收超时中断有效,您需要在UART设置中使能接收超时中断中断,示例代码如下: UART_EnableInt(UART5, UART_INTEN_RXTOIEN_Msk); 此函数将使能UART5的接收超时中断。这应该解决您的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
695 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
655浏览 9评论
651浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
783浏览 6评论
630浏览 5评论
670浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 19:06 , Processed in 1.043351 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号