[APM32F4]

【APM32F411V Tiny Board测评】主频超频168MHZ+串口3移植modbus从机协议

[复制链接]
531|9
手机看帖
扫描二维码
随时随地手机跟帖
WangXu27277|  楼主 | 2024-6-11 10:15 | 显示全部楼层 |阅读模式
首先说明一下,本例程是在极海官方407例程的例程的基础上修改的,程序也适用于APM32F407
第一步,设置时钟 刚开始忘记修改了,没想到程序也可以烧录,那就超频168M使用吧,后面测试也没有遇到问题,相当稳定。
微信截图_20240611095011.png
第二步,设置串口2为调试串口,发送调试信息,PD5,PD6,测试没有问题
微信截图_20240611095851.png
接下来就是移植modbus从机部分 使用串口3 PC10,PC11    定时器14
找到APM32中与STM32中相对于的函数,直接替换就可以了,没有什么难度

下面是串口3函数 中断使能、失能函数USART_EnableInterrupt USART_EDisableInterrupt
考虑到485芯片的发送,添加485_EN脚,将发送中断USART_INT_TXBE 换成 USART_INT_TXC
微信截图_20240611100242.png
串口3 485EN脚初始化
微信截图_20240611100626.png
串口3发送函数USART_TxData(USART3, ucByte);
串口3接收函数*pucByte = USART_RxData(USART3);
串口3中断函数

串口3中断

串口3中断

定时器14初始化 打开中断
微信截图_20240611101025.png
定时器14关闭中断 中断配置 需要注意的是定时器14中断名是:TMR8_TRG_COM_TMR14_IRQHandler
我刚开始是用的是TMR14_IRQHandler,程序找不到中断入口,卡死了
微信截图_20240611101034.png
最后在主函数初始化modbus函数     给寄存器几个初始值  数据一样,验证成功
eMBInit(MB_RTU, 0x01, 0x00, 115200, MB_PAR_NONE);       //modbus串口配置 串口三  
eMBEnable();                                            //modbus使能
微信截图_20240611101322.png 微信截图_20240611101501.png

使用特权

评论回复
WangXu27277|  楼主 | 2024-6-12 10:40 | 显示全部楼层
源码来了,波特率115200

APM32H407VGT6.zip

1.73 MB

使用特权

评论回复
daichaodai| | 2024-6-11 19:40 | 显示全部楼层
MCU的主频都是留了一点余量的,但是不建议超频使用。

使用特权

评论回复
lemonhub| | 2024-6-11 21:22 | 显示全部楼层
能否提供一下完整的代码文件

使用特权

评论回复
WoodData| | 2024-6-11 22:10 | 显示全部楼层
有没源码我也测试一下

使用特权

评论回复
qintian0303| | 2024-6-11 22:45 | 显示全部楼层
虽然设置超频了,不过又进行测试效果的吗?有可能有最高限制给压下来了

使用特权

评论回复
WangXu27277|  楼主 | 2024-6-12 10:42 | 显示全部楼层
lemonhub 发表于 2024-6-11 21:22
能否提供一下完整的代码文件

我上传了

使用特权

评论回复
WangXu27277|  楼主 | 2024-6-12 10:42 | 显示全部楼层
WoodData 发表于 2024-6-11 22:10
有没源码我也测试一下

代码上传了

使用特权

评论回复
评论
WoodData 2024-6-12 11:20 回复TA
真棒!感谢感谢。 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝