打印
[STM32F4]

stm32f407 串口2波特率改动求助

[复制链接]
1455|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llljh|  楼主 | 2021-6-9 22:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人有个407项目,我把系统主频改成72MHZ,APB1主频改成了18MHZ ,串口2波特率要求4800,原先是168MHZ主频,APB1主频改成了42MHZ串口波特率是对的,现改72MHZ主频,APB1主频改成了18MHZ波特率就不对啦

使用特权

评论回复
沙发
llljh|  楼主 | 2021-6-9 22:36 | 只看该作者
HAL库怎么修改波特率4800?

使用特权

评论回复
板凳
jiajs| | 2021-6-9 22:41 | 只看该作者
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
地板
wyjie| | 2021-6-9 22:43 | 只看该作者
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();
}

使用特权

评论回复
5
chuxh| | 2021-6-9 22:52 | 只看该作者
407 为什么要这么低的主频?

使用特权

评论回复
6
llljh|  楼主 | 2021-6-9 22:58 | 只看该作者
抗干扰呀,老大要求的

使用特权

评论回复
7
llljh|  楼主 | 2021-6-9 23:02 | 只看该作者
时钟源改对了,这里是自动匹配的

使用特权

评论回复
8
llljh|  楼主 | 2021-6-9 23:06 | 只看该作者
我试过不行的

使用特权

评论回复
9
dengdc| | 2021-6-9 23:08 | 只看该作者
试了高一点的主频没有

使用特权

评论回复
10
llljh|  楼主 | 2021-6-9 23:10 | 只看该作者
不行的,主要是HAL库包装的太严,有没资料介绍怎么修改不同主频的串口波特率

使用特权

评论回复
11
ousj| | 2021-6-9 23:13 | 只看该作者
误码率太大了?

使用特权

评论回复
12
yszong| | 2021-6-9 23:16 | 只看该作者
用HAL工具配置。

使用特权

评论回复
13
juventus9554| | 2021-6-9 23:43 | 只看该作者
修改的可能不全面。

使用特权

评论回复
14
renyaq| | 2021-6-9 23:45 | 只看该作者
不行是因为没有改对

使用特权

评论回复
15
dengdc| | 2021-6-9 23:48 | 只看该作者
本人的407系统,168M主频,直接把串口速率数值(1200、2400、4800、9600、19200....)带入串口配置函数即可,随时配置。

使用特权

评论回复
16
xxrs| | 2021-6-9 23:52 | 只看该作者
靠降低CPU主频抗干扰?

使用特权

评论回复
17
llljh|  楼主 | 2021-6-9 23:55 | 只看该作者

嗯,那我按大家的说法挨个排查一下,谢谢哈

使用特权

评论回复
18
skyred| | 2021-6-10 13:46 | 只看该作者
波特率不是通过改主频更改的,可以在你串口初始化的时候配置

使用特权

评论回复
19
药无尘| | 2021-6-10 22:51 | 只看该作者
遇到HAL库封装太深,无法修改底层,就改用库函数或者直接操作寄存器,搭配使用可以很好地修改

使用特权

评论回复
20
yklstudent| | 2021-6-11 10:48 | 只看该作者
自己先手动算算波特率误差是否在允许范围内再说

使用特权

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

本版积分规则

855

主题

11301

帖子

6

粉丝