[STM32F4] stm32f407 串口2波特率改动求助

[复制链接]
 楼主| a1986974 发表于 2019-8-5 10:04 | 显示全部楼层 |阅读模式
本人有个407项目,我把系统主频改成72MHZ,APB1主频改成了18MHZ ,串口2波特率要求4800,原先是168MHZ主频,APB1主频改成了42MHZ串口波特率是对的,现改72MHZ主频,APB1主频改成了18MHZ波特率就不对啦,求高手帮忙指点下,HAL库怎么修改波特率4800??

void MX_USARTx_Init(void)
{
  /* 串口外设时钟使能 */
  USART_RCC_CLK_ENABLE();
  
  husartx.Instance = USARTx;
  husartx.Init.BaudRate = USARTx_BAUDRATE;
  husartx.Init.WordLength = UART_WORDLENGTH_8B;
  husartx.Init.StopBits = UART_STOPBITS_1;
  husartx.Init.Parity = UART_PARITY_NONE;
  husartx.Init.Mode = UART_MODE_TX_RX;
  husartx.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  husartx.Init.OverSampling = UART_OVERSAMPLING_16;
  HAL_UART_Init(&husartx);
  
  /* 配置串口中断并使能,需要放在HAL_UART_Init函数后执行修改才有效 */
  MX_NVIC_USARTx_Init();
}
goodluck09876 发表于 2019-8-5 10:13 | 显示全部楼层
407 为什么要这么低的主频?
 楼主| a1986974 发表于 2019-8-5 10:15 | 显示全部楼层
goodluck09876 发表于 2019-8-5 10:13
407 为什么要这么低的主频?

抗干扰呀,老大要求的
ayb_ice 发表于 2019-8-5 13:12 | 显示全部楼层
时钟源改对了,这里是自动匹配的
 楼主| a1986974 发表于 2019-8-5 17:38 | 显示全部楼层
ayb_ice 发表于 2019-8-5 13:12
时钟源改对了,这里是自动匹配的

我试过不行的
eddy2019 发表于 2019-8-5 17:52 | 显示全部楼层
试了高一点的主频没有
 楼主| a1986974 发表于 2019-8-5 19:00 | 显示全部楼层
eddy2019 发表于 2019-8-5 17:52
试了高一点的主频没有

不行的,主要是HAL库包装的太严,有没资料介绍怎么修改不同主频的串口波特率
yklstudent 发表于 2019-8-5 19:21 | 显示全部楼层
误码率太大了?
xixi2017 发表于 2019-8-5 21:27 | 显示全部楼层
用HAL工具配置。
xixi2017 发表于 2019-8-5 22:34 | 显示全部楼层
修改的可能不全面。
ayb_ice 发表于 2019-8-6 08:38 | 显示全部楼层

不行是因为没有改对
yzzly 发表于 2019-8-6 11:05 | 显示全部楼层
本帖最后由 yzzly 于 2019-8-6 11:10 编辑

本人的407系统,168M主频,直接把串口速率数值(1200、2400、4800、9600、19200....)带入串口配置函数即可,随时配置。靠降低CPU主频抗干扰?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

21

帖子

0

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

6

主题

21

帖子

0

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