乘风飞扬 发表于 2024-9-23 18:48:01

串口硬件超时中断参考例子

STC32系列从【STC32G8K64,STC32F】开始推出了串口硬件超时中断功能
存在问题:
启动超时中断后,只要接收脚空闲信号时间超过设置的超时时间,就会触发超时中断。
从而导致没有数据通信期间会反复触发超时中断。

STC8H2K08U系列开始对串口硬件超时功能进行了优化与加强
优化部分:解决了空闲期间超时中断反复触发问题。
启动超时中断后,RXD脚收到数据后才开始计时,产生超时中断后停止计时。
加强部分:增加了一个字节的超时时间控制寄存器,使超时时间控制寄存器达到24位


附件提供这几个系列
单片机的串口硬件超时中断例子,供参考。

神农鼎 发表于 2024-9-23 22:00:42

AI8051U的串口硬件超时中断也是最新水平



深圳国芯人工智能有限公司-实验箱 (stcai.com)


xukex 发表于 2024-9-24 15:37:55

这个硬件超时好。特别是用在MODBUS上面

giveyou 发表于 2024-11-19 10:43:30

{:4_165:}{:4_165:}{:4_165:}

angalp 发表于 2024-11-19 10:45:10

功能越来越强大了。

liuzonggong 发表于 2024-11-30 22:05:26

没有超时侦测之前,接收时,如果收到第一个字节就开启一个定时器,并且把3.5个字节的时间给他,每收到一个字节,就重置定时器。直到中断,认为接收完成。现在好了,直接在中断里查询是否是超时了。

科学妞妞 发表于 2024-12-2 07:11:46

{:smile:}

micromotion 发表于 2025-1-10 17:30:15

是不是可以STC32G12K128没有串口硬件超时中断功能?手册上标明 STC32G12K128 没有 ENTO 串口接收超时控制位,开始我以为是默认使能串口接收超时控制。

惠小惠 发表于 2025-5-29 09:24:56

我使用的是STC32G8K64-42I-LQFP32,为啥设置完    UR1TOTL = 0xe0;
    UR1TOTH = 0xab;   //0xABE0 = 44000之后开启超时中断,不管RX有没有数据,都直接进了超时中断?

ercircle 发表于 2025-5-29 14:43:02

惠小惠 发表于 2025-5-29 09:24
我使用的是STC32G8K64-42I-LQFP32,为啥设置完    UR1TOTL = 0xe0;
    UR1TOTH = 0xab;   //0xABE0 = 44 ...


看1L提示是个已知问题,可以换8H2K或者Ai8051U系列。

页: [1] 2
查看完整版本: 串口硬件超时中断参考例子