昨天偶然用到STM32 UART4,UART5两个串口,我开始觉得配置很简单,就简单的配置了,但是怎么都调试部通,我试了1,2串口都没有问题,但是就是4,5不行,我查了一些资料,我相信自己的配置没有错,就是一直调试不通,只能用示波器看了,一看才知道是硬件引脚连错了,电路图上画的就是错的,芯片引脚写的都是错的,我无语了,以后仔细看芯片手册................
配置如下:
/*
* 函数名:UART4_Config
* 描述 :UART4 GPIO 配置,工作模式配置。115200 8-N-1
* 输入 :无
* 输出 : 无
* 调用 :外部调用
*/
void UART4_Config(void)
{
//使能时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
//配置接收管脚PC11
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOC, &GPIO_InitStructure);
//配置发送管脚PC10
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
//波特率、字长、停止位、奇偶校验位、硬件流控制、异步串口为默认(被屏蔽字设置)
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl =
USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(UART4, &USART_InitStructure);
USART_ITConfig(UART4, USART_IT_RXNE, ENABLE);
USART_Cmd(UART4, ENABLE);
}
上一篇:STM32F工程移植注意事项
下一篇:STM32F429HAL库UART学习笔记
推荐阅读最新更新时间:2024-11-14 01:27
设计资源 培训 开发板 精华推荐
- 基于arduino心跳跟随灯
- LTC3608 的典型应用 - 18V、8A 单片式同步降压型 DC/DC 转换器
- 用于仪表的 16 位 4 通道 DAC
- LTC3851AIMSE-1 高效 3.3V/15A 降压转换器的典型应用电路
- NCP130AMX105TCGEVB:NCP130AMX105TCG 偏置轨 LDO 稳压器演示板
- 使用 Analog Devices 的 LTM8003-3.3HY 的参考设计
- 双向电池初始化系统电源板参考设计
- ES1030QI 电源轨排序器的典型(独立操作)应用
- LTM8028 的典型应用 - 36VIN、UltraFast、低输出噪声 5A 模块稳压器
- 使用 ON Semiconductor 的 LV5655VB 的参考设计