8H2K32U支持串口中断,手册里面看不到相关代码,具体该如何操作
本帖最后由 DebugLab 于 2024-8-22 09:33 编辑里面有DMA串口超时相关的,但仅仅是用时间超时,不是串口接收超时,不知道哪里有具体的说明.
本帖最后由 布丁橘长 于 2024-8-22 02:38 编辑
看了8H系列手册,串口1、2有接收超时中断功能
看手册描述,大致步骤是(串口2):
1、使能串口2接收超时中断功能 ENTO 置 1 UR2TOCR |= 0x80
2、使能串口2接收超时中断 ENTOI 置 1 UR2TOCR |= 0x40,
3、选择串口2超时计数时钟源(SCALE 置 0(UR2TOCR &= ~0x20):时钟选择波特率,SCALE 置1(UR2TOCR |= 0x20):时钟源选择系统时钟)
前三步确定时钟源后,就是一句代码, UR2TOCR = 0xC0 或 UR2TOCR = 0xD0;
4、设置超时时间TM:UR2TOTL=xxx,UR2TOTH=xxx >> 8, UR2TOTE = xxx >> 16
5、串口2中断中,查询串口2超时中断请求标志TOIF是否==1: if(UR2TOSR & 0x01) { ...}
6、清串口2超时标志 CTOIF 置 1: UR2TOSR |= 0x80
具体怎么配合DMA用,这个要研究下了
本帖最后由 xiangzichen 于 2024-8-22 07:43 编辑
布丁橘长 发表于 2024-8-22 02:36
看了8H系列手册,串口1、2有接收超时中断功能
DMA我到不用,不过这里我也看到了,但没有和中断相关的介绍,和串口同享中端口? 串口超时中断可参考这个帖子里的例子:
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=4707&pid=52291
串口超时中断跟串口收发中断使用同一个中断地址。 乘风飞扬 发表于 2024-8-22 09:11
串口超时中断可参考这个帖子里的例子:
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&p ...
好的,谢谢,我测试下
页:
[1]