打印
[技术问答]

HC32F005 Freemodbus 无法进入串口发送中断

[复制链接]
2089|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Black~|  楼主 | 2025-1-27 20:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
HC32F005移植了Freemodbus,ModbusPoll使用10指令,可以修改寄存器操作,但是单片机无法进入串口发送中断,使得无法串口回复数据,有没有大神帮忙看下,代码如下

Modbus_F005.zip

2.69 MB

使用特权

评论回复
沙发
kaif2n9j| | 2025-2-18 17:55 | 只看该作者
检查Freemodbus的初始化过程,确保串口和定时器等底层驱动已正确初始化。特别是eMBInit函数,它负责初始化协议栈,包括串口和定时器的配置

使用特权

评论回复
板凳
lamanius| | 2025-2-18 19:02 | 只看该作者
验证串口配置,如波特率、数据位、停止位和校验位等,确保它们与ModbusPoll的设置相匹配。

使用特权

评论回复
地板
q1ngt12| | 2025-2-18 20:12 | 只看该作者
中断配置问题,检查是否已正确配置并启用了串口发送中断。在STM32等微控制器中,通常需要在串口初始化函数中启用相应的中断(如UART_IT_TC用于发送完成中断)

使用特权

评论回复
5
y1n9an| | 2025-2-18 21:18 | 只看该作者
确认中断优先级设置是否合理,避免中断被其他高优先级任务阻塞。

使用特权

评论回复
6
t1ngus4| | 2025-2-18 22:25 | 只看该作者
建议检查串口发送中断服务程序是否正确编写并链接到中断向量表中。

使用特权

评论回复
7
q1d0mnx| | 2025-2-19 08:35 | 只看该作者
在中断服务程序中,确保已正确调用Freemodbus的发送完成回调函数(如prvvUARTTxReadyISR),以便协议栈能够处理发送完成事件。

使用特权

评论回复
8
p0gon9y| | 2025-2-19 09:47 | 只看该作者
可能是协议栈问题吧,确认Freemodbus协议栈的版本和配置是否与HC32F005兼容。检查协议栈中的发送和接收逻辑,确保它们能够正确处理数据帧和中断事件。

使用特权

评论回复
9
d1ng2x| | 2025-2-19 10:55 | 只看该作者
检查硬件连接,确保串口线正确连接且没有损坏。使用示波器或逻辑分析仪等工具检查串口信号,确保发送和接收信号正常。

使用特权

评论回复
10
ex7s4| | 2025-2-19 12:06 | 只看该作者
最好检查一下是否有其他任务或中断干扰了串口通信。确认操作系统的调度策略是否影响了串口中断的及时处理。

使用特权

评论回复
11
liu96jp| | 2025-2-19 14:15 | 只看该作者
仔细检查并验证串口和定时器的初始化代码。确认中断配置和优先级设置是否正确。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

7

帖子

0

粉丝