xiangzichen 发表于 2024-8-21 21:29:19

8H2K32U支持串口中断,手册里面看不到相关代码,具体该如何操作

本帖最后由 DebugLab 于 2024-8-22 09:33 编辑

里面有DMA串口超时相关的,但仅仅是用时间超时,不是串口接收超时,不知道哪里有具体的说明.

布丁橘长 发表于 2024-8-22 02:36:39

本帖最后由 布丁橘长 于 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:42:25

本帖最后由 xiangzichen 于 2024-8-22 07:43 编辑

布丁橘长 发表于 2024-8-22 02:36
看了8H系列手册,串口1、2有接收超时中断功能


DMA我到不用,不过这里我也看到了,但没有和中断相关的介绍,和串口同享中端口?

乘风飞扬 发表于 2024-8-22 09:11:16

串口超时中断可参考这个帖子里的例子:
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=4707&pid=52291
串口超时中断跟串口收发中断使用同一个中断地址。

xiangzichen 发表于 2024-8-22 11:48:22

乘风飞扬 发表于 2024-8-22 09:11
串口超时中断可参考这个帖子里的例子:
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&p ...

好的,谢谢,我测试下
页: [1]
查看完整版本: 8H2K32U支持串口中断,手册里面看不到相关代码,具体该如何操作