打印
[APM32F4]

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

[复制链接]
505|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
WangXu27277|  楼主 | 2024-6-11 10:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先说明一下,本例程是在极海官方407例程的例程的基础上修改的,程序也适用于APM32F407
第一步,设置时钟 刚开始忘记修改了,没想到程序也可以烧录,那就超频168M使用吧,后面测试也没有遇到问题,相当稳定。

第二步,设置串口2为调试串口,发送调试信息,PD5,PD6,测试没有问题

接下来就是移植modbus从机部分 使用串口3 PC10,PC11    定时器14
找到APM32中与STM32中相对于的函数,直接替换就可以了,没有什么难度

下面是串口3函数 中断使能、失能函数USART_EnableInterrupt USART_EDisableInterrupt
考虑到485芯片的发送,添加485_EN脚,将发送中断USART_INT_TXBE 换成 USART_INT_TXC

串口3 485EN脚初始化

串口3发送函数USART_TxData(USART3, ucByte);
串口3接收函数*pucByte = USART_RxData(USART3);
串口3中断函数

定时器14初始化 打开中断

定时器14关闭中断 中断配置 需要注意的是定时器14中断名是:TMR8_TRG_COM_TMR14_IRQHandler
我刚开始是用的是TMR14_IRQHandler,程序找不到中断入口,卡死了

最后在主函数初始化modbus函数     给寄存器几个初始值  数据一样,验证成功
eMBInit(MB_RTU, 0x01, 0x00, 115200, MB_PAR_NONE);       //modbus串口配置 串口三  
eMBEnable();                                            //modbus使能

使用特权

评论回复
来自 2楼
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 | 只看该作者
能否提供一下完整的代码文件

使用特权

评论回复
5
WoodData| | 2024-6-11 22:10 | 只看该作者
有没源码我也测试一下

使用特权

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

使用特权

评论回复
7
WangXu27277|  楼主 | 2024-6-12 10:42 | 只看该作者
lemonhub 发表于 2024-6-11 21:22
能否提供一下完整的代码文件

我上传了

使用特权

评论回复
8
WangXu27277|  楼主 | 2024-6-12 10:42 | 只看该作者
WoodData 发表于 2024-6-11 22:10
有没源码我也测试一下

代码上传了

使用特权

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

本版积分规则

1

主题

5

帖子

0

粉丝