[家电应用] 中颖SH32F9B00串口通信的中断服务函数是怎样的?

[复制链接]
5209|38
抱素 发表于 2026-5-23 16:01 | 显示全部楼层
SH32F9B00 串口中断函数先判断中断标志,接收中断读取数据存入缓冲区,清除标志位。发送中断写入待发数据后清标志。提前开启串口使能、收发中断与总中断,配置波特率与模式。函数内精简代码不做耗时操作,保障通信稳定,可实现连续收发数据。
旧年胶片 发表于 2026-6-25 16:51 | 显示全部楼层
中颖 SH32F9B00 串口中断函数需绑定对应中断向量,进入后先判断中断标志(发送完成 / 接收就绪),处理数据后手动清标志位。接收时读取数据寄存器,发送时写数据。遵循 Cortex-M0 中断规范,函数无返回值、无参数,加interrupt关键字,配置好中断优先级即可触发。
dongnanxibei 发表于 2026-7-7 19:21 | 显示全部楼层
自带多路硬件 UART(UART0/UART1…),中断采用标准 NVIC 中断架构,中断服务函数遵循中颖 SH32 系列标准驱动框架,分寄存器裸机版本、官方 SDK 库函数版本两种写法。
 楼主| 樱花树维纳斯 发表于 2026-7-13 15:47 | 显示全部楼层
SH32F9B00 串口中断先在初始化开启串口、接收 / 发送中断及总中断。中断函数内判断中断标志位,接收置位则读取 DR 寄存器清标志,发送完成可加载下一数据。禁止在中断内长运算,数据及时存入缓冲区。传输结束清除对应中断标记,避免重复进中断,官方 SDK 自带完整收发中断示例可直接移植。
拿走一光年 发表于 2026-7-18 15:22 | 显示全部楼层
SH32F9B00 串口中断函数先判断中断标志位,区分接收、发送中断。接收中断读取 SBUF 清标志,缓存数据;发送中断载入下一帧数据。函数内需快速处理,禁止长延时,操作完成手动清零对应中断标记。搭配全局缓冲区实现收发缓存,适配家电主控串**互,避免中断阻塞影响整机时序。
拿走一光年 发表于 2026-7-18 15:22 | 显示全部楼层
SH32F9B00 串口中断函数先判断中断标志位,区分接收、发送中断。接收中断读取 SBUF 清标志,缓存数据;发送中断载入下一帧数据。函数内需快速处理,禁止长延时,操作完成手动清零对应中断标记。搭配全局缓冲区实现收发缓存,适配家电主控串**互,避免中断阻塞影响整机时序。
今夜限定月光 发表于 2026-8-9 15:54 | 显示全部楼层
开启串口收发中断,中断函数内判断中断标志位:接收置位就读取 SBUF 清标志,发送中断按需填充发送缓存。用 void UART_ISR (void) interrupt 串口中断号定义,禁止长延时,仅做数据缓存搬运,业务逻辑放主循环轮询处理,避免中断卡顿。
吝啬晚安 发表于 2026-8-11 15:03 | 显示全部楼层
SH32F9B00 串口中断依托 NVIC 配置,中断入口绑定 USART 回调函数。中断函数内先判断状态寄存器,区分接收完成、发送完成、溢出中断;接收中断直接读取 DR 寄存器存数据,发送中断填充发送缓存,异常标志直接清零。全程快速处理,避免长延时,适配家电串口调试、模组通讯。
雨下纪事 发表于 2026-8-11 15:11 | 显示全部楼层
SH32F9B00 串口中断,以 UART0 为例,中断服务函数由 UART0_IRQHandler 实现。内部读取中断状态寄存器,判断接收标志 RXIF 置位,读取 DR 寄存器清标志,完成接收;发送完成 TXIF 置位可处理发送后续逻辑。注意读完数据硬件自动清 RXIF,TXIF 写 1 清零,中断里不要做耗时操作,仅拷贝数据、置标志,业务逻辑放主循环处理。
治愈糖果屋 发表于 2026-8-13 08:36 | 显示全部楼层
中颖SH32F9B00的串口中断服务函数需要根据实际的应用场景来编写,一般会包括接收中断和发送中断的处理。在接收中断中,会读取接收缓冲区的数据,并进行相应的处理。
FranklinUNK 发表于 2026-8-13 10:30 | 显示全部楼层
先检查USARTx->ISR寄存器判断中断类型,然后根据中断类型读取DR寄存器,处理数据后清除中断标志位。记得检查缓冲区状态,避免溢出。
heisexingqisi 发表于 2026-8-18 13:27 | 显示全部楼层
UART_IRQHandler,所有 UART 通道共用这一个中断服务函数,函数内部再判断中断标志位区分是哪一路、什么事件(接收完成、发送完成、帧错误、溢出等)。
蝶弄美人簪 发表于 2026-8-28 14:52 | 显示全部楼层
开启串口收发中断,中断函数内判断中断标志位。接收中断直接读取 DR 寄存器存入缓冲区,清除标志;发送中断判断发送缓存是否有数据,依次载入发送寄存器。空闲中断用于帧收尾校验,中断首尾禁止长时间延时,避免数据溢出,配合环形缓冲区保障连续收发稳定。
抱素 发表于 2026-9-6 15:43 | 显示全部楼层
SH32F9B00 串口中断,中断服务函数先判断 SR 状态寄存器,区分接收、发送中断标志。接收中断读取 DR 寄存器清标志,存入接收缓冲区;发送中断填入下一发送数据。注意软件清零中断标志,禁止在中断内做耗时处理。开启全局中断与串口对应中断使能,回调处理数据,避免丢帧,适配家电串口收发场景。
AdaMaYun 发表于 2026-9-6 17:12 | 显示全部楼层
本帖最后由 AdaMaYun 于 2026-9-6 17:14 编辑

此外可在中断里置软件标志,主循环统一处理,避免中断与主程序并发访问缓冲区。
AdaMaYun 发表于 2026-9-6 17:13 | 显示全部楼层
串口中断服务函数建议只收标志与读写缓冲区,中断内避免耗时操作,需注意接收溢出标志的清除。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0