OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4925|回复: 6

HAL库,stm32F429串口通信乱码

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2017-8-6
在线时间
0 小时
发表于 2017-8-6 13:31:09 | 显示全部楼层 |阅读模式
#include "sys.h"
#include "delay.h"

UART_HandleTypeDef   USART1_Handler;

void USART1_Init()
{
    USART1_Handler.Instance = USART1;
    USART1_Handler.Init.BaudRate = 115200;
    USART1_Handler.Init.WordLength = USART_WORDLENGTH_8B;
    USART1_Handler.Init.StopBits = USART_STOPBITS_1;
    USART1_Handler.Init.Parity = USART_PARITY_NONE;
    USART1_Handler.Init.HwFlowCtl = UART_HWCONTROL_NONE;
    USART1_Handler.Init.OverSampling = UART_OVERSAMPLING_16;
    USART1_Handler.Init.Mode = USART_MODE_TX_RX;
   
    HAL_UART_Init(&USART1_Handler);
}



void HAL_UART_MspInit(UART_HandleTypeDef *huart)
{
    GPIO_InitTypeDef   GPIO_Initure;
   
    if(huart->Instance == USART1)
    {
        __HAL_RCC_GPIOA_CLK_ENABLE();
        __HAL_RCC_USART1_CLK_ENABLE();
        
        GPIO_Initure.Pin = GPIO_PIN_9;
        GPIO_Initure.Mode = GPIO_MODE_AF_PP;
        GPIO_Initure.Pull = GPIO_PULLUP;
        GPIO_Initure.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
        GPIO_Initure.Alternate = GPIO_AF7_USART1;
        HAL_GPIO_Init(GPIOA,&GPIO_Initure);
        
        GPIO_Initure.Pin = GPIO_PIN_10;
        HAL_GPIO_Init(GPIOA,&GPIO_Initure);
    }
}



int main(void)
{
    uint8_t buff[] = "test";
    HAL_Init();
    Stm32_Clock_Init(360,25,2,8);
    delay_init(180);
    USART1_Init();
   
    while(1)
    {
        HAL_UART_Transmit(&USART1_Handler,buff,sizeof(buff),1000);
        delay_ms(300);
    }
}
XCOM.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-8-6 15:04:03 | 显示全部楼层
A土豆 发表于 2017-8-6 14:39
您好,我的时钟系统配置使用的是原子的sys.c源文件,并没有修改

晶振用的多少的?把文件system_stm32f4xx.c和stm32f4xx_hal_confi.h中的宏定义  HSE_VALUE,全部修改为你自己开发板所使用的晶振大小。 R_7}_O2`~ZWI3N4J8F9AX6O.png
开往春天的手扶拖拉机
回复 支持 2 反对 0

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-8-6 14:33:25 | 显示全部楼层
检查系统时钟配置。
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2017-8-6
在线时间
0 小时
 楼主| 发表于 2017-8-6 14:39:17 | 显示全部楼层
zuozhongkai 发表于 2017-8-6 14:33
检查系统时钟配置。

您好,我的时钟系统配置使用的是原子的sys.c源文件,并没有修改
回复 支持 反对

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-8-6 15:04:29 | 显示全部楼层
A土豆 发表于 2017-8-6 14:39
您好,我的时钟系统配置使用的是原子的sys.c源文件,并没有修改

晶振用的多少的?把文件system_stm32f4xx.c和stm32f4xx_hal_confi.h中的宏定义  HSE_VALUE,全部修改为你自己开发板所使用的晶振大小
开往春天的手扶拖拉机
回复 支持 反对

使用道具 举报

8

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2016-5-12
在线时间
12 小时
发表于 2018-4-24 10:39:48 | 显示全部楼层
https://www.cnblogs.com/htsky/p/5923422.html
看一下这篇博客,里面有详细的介绍.实际就是波特率不对,导致波特率不对的原因是 库文件中的宏定义HSE_VALUE的外部晶振的值没有改变,说白了修改一下宏定义就好了.希望能帮到你
回复 支持 反对

使用道具 举报

18

主题

190

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1068
金钱
1068
注册时间
2012-6-18
在线时间
158 小时
发表于 2018-4-25 03:20:24 来自手机 | 显示全部楼层
你的callback 函数呢?检查你的callback函数吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-25 23:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表