如题,如何修改USART2串口波特率为1.2M,根据手册的计算公式,和代码中的变量定义
直接修改USART_Printf_Init(115200);为1.2M没有效果,还有PCLK1的数值定义我并没有找到是多少,但我以115200倒推的结果很离谱
这个公式中需要注意单位的换算吗?能否举一个简单的计算例子
我使用的系统时钟为72MHZ
如题,如何修改USART2串口波特率为1.2M,根据手册的计算公式,和代码中的变量定义
直接修改USART_Printf_Init(115200);为1.2M没有效果,还有PCLK1的数值定义我并没有找到是多少,但我以115200倒推的结果很离谱
这个公式中需要注意单位的换算吗?能否举一个简单的计算例子
我使用的系统时钟为72MHZ
你好,我们以1.2M来计算,假设你串口2工作在36M时钟下
由收发器的波特率 =FCLK/(16*USARTDIV)得到USARTDIV=1.875,
后根据USARTDIV = DIV_M+(DIV_F/16),可得到,DIV_M=1,DIV_F=0.875*16=14.所以是可以得到1.2M波特率的。可参考附件例程测试。
具体修改哪个文件里面的参数可以更改波特率(也就是DIV_M还有DIV_F的值),我看您发的文件里面这个USART_BRR_DIV_Fraction数值与我的相同,只需要修改USART_Printf_Init()这个参数就可以了吗?,还有这个PCLK1的具体数值在哪个文件里面有定义
你好,你所说的那两个值就是下面两个寄存器的值。想设置某个波特率直接在USART_Printf_Init()函数里填写相应参数就可以,由USART_Init()函数自主完成计算,决定往这两个寄存器存入相应的值,所有不需要你这边设置什么
还有使用你发的历程,烧录到CH32V203C8T6中,接收乱码
但在修改波特率为115200后,乱码没有了
刚刚测试了一下,0.5M以下的都可以正常接收,速率高了就会乱码,硬件测试环境会有影响吗?您能测试一下v203C8T6在你那边环境可以正常接收不
你好,WCHLINK暂不支持非标准波特率可换个如340再试一下,如还不行建议再换个串口调试助手试下,我这边是测试通过再发给你这边的。后续再有问题可邮箱与我沟通yrl@wch.cn
更换CH340后正常接收