今天试了试串口4配置,但是不知道为什么串口4上传到串口调试助手的数据一直不对,有乱码出现,下面是我的配置
void UART4_Config(void)
{
UART4_GPIO_Config();
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = BAUD_RATE_9600; /*< 波特率设置 >*/
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); /*< 使能串口 >*/
while (USART_GetFlagStatus(UART4, USART_FLAG_TXE) != SET); /*< 等待串口复位 >*/
}
void UART4_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_UART4); /*< Pin reuse ! >*/
GPIO_PinAFConfig(GPIOA,GPIO_PinSource1,GPIO_AF_UART4); /*< Pin reuse ! >*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; /*< 配置引脚 >*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; /*< 配置模式 >*/
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /*< 配置速度 >*/
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; /*< 输出模式 >*/
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; /*< 内部电阻 >*/
GPIO_Init(GPIOA,&GPIO_InitStructure);
}
数据是直接通过探索者板子上的ch340接口发送数据。
是不是时钟频率的问题,但是USART 应该和 UART一样呀,都是异步呀。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>