原子哥,帮我看看这段串口接收程序有什么问题吗?为什么用串口调试助手接收不到正确信息呢?

2019-07-21 02:46发布

原子哥,帮我看看这段串口接收程序有什么问题吗?为什么用串口调试助手接收不到正确信息呢?

#include"stm32f10x_map.h"
 u8 res;
 
 int main()
 {
 RCC->APB2ENR|=1<<14;  //开启USART时钟
 RCC->APB2ENR|=1<<2;  //开启GPIOA时钟
 GPIOA->CRH&=0xfffff00f;
 GPIOA->CRH|=0x000004b0;   //PA.09(TX1)复用推挽输出,PA.10(RX1)浮空输入
 USART1->BRR=0x0045;   //设置波特率为115200
 USART1->CR1|=1<<2;   //接收允许
 USART1->CR1|=1<<3;   //发送允许
 USART1->CR1|=1<<13;   //USART允许
 RCC->APB2ENR|=1<<5;   //开启GPIOD时钟
 GPIOD->CRH&=0x0000ffff;
 GPIOD->CRH|=0x33330000;    //设置PD.13位通用推挽输出
 
 while(1)
{
 if(USART1->SR&1<<5)     
 {res=USART1->DR;
 if(res==1)
 GPIOD->ODR=0xffff;}        //如果接收到1,点亮点亮小灯           
 }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。