[应用相关]

StM32 USART 串口的问题

[复制链接]
1076|9
手机看帖
扫描二维码
随时随地手机跟帖
Levenburg|  楼主 | 2017-1-22 13:55 | 显示全部楼层 |阅读模式
StM32  USART   串口  怎么发出去 字符‘a’ 的一直是0x80    求解!   
      
          GPIOA    AFIO    USART1  的时钟都打开了  
串口是USART 1           
      systmeClook_init();            
      GPIOA->CRH=0x4b0;            
       USART1->BRR=0x271; //115200

             USART1->CR1|=(1<<13);
             USART1->CR1&=~(1<<12);
             USART1->CR1|=(1<<2)|(1<<3);
             USART1->CR2&=~((1<<13)|(1<<12));
  while(1)
  {
  
  if((USART1->SR&(1<<6))!=0)
  USART1->DR='a';
  }   
Thorald| | 2017-1-22 14:24 | 显示全部楼层
用库函数吧

使用特权

评论回复
Bjorn| | 2017-1-22 14:35 | 显示全部楼层
串口助手波特率设置对不对

使用特权

评论回复
Rollo| | 2017-1-22 14:53 | 显示全部楼层
时钟初始化的对不对?

使用特权

评论回复
Rangar| | 2017-1-22 15:08 | 显示全部楼层
你发的是字符的话,串口调试助手接收不要选择hex查看

使用特权

评论回复
Stannis| | 2017-1-22 15:39 | 显示全部楼层
就说0x80这个数 它是字符吗?  

‘a’ = 0x61

0x80 = 128 早就超出了char型数据的范围

感到奇怪的是 你究竟是怎么搞的!

使用特权

评论回复
Brand2| | 2017-1-22 15:46 | 显示全部楼层
所用的引脚配了吗?
一般库函数是经过严格测试过的,不会有问题的,如果你的程序用库函数也有问题,那可以肯定一定是你的问题,估计是引脚、时钟等配置没做好

使用特权

评论回复
oayzw| | 2017-1-23 07:58 | 显示全部楼层
拿示波器或逻辑分析仪看看输出波形

使用特权

评论回复
ccabc123| | 2017-1-23 09:15 | 显示全部楼层
你可以先发送0x11或者0x22等等这样的16进制数,确定是不是数据的显示问题,如果能够接收到0x11,那么说明配置没问题,再找其他原因,如果不能够,说明配置有问题,检查波特率

使用特权

评论回复
ccabc123| | 2017-1-23 09:20 | 显示全部楼层
另外,串口1的时钟挂在了APB2上面,你求的那个BRR寄存器的值好像是按照72000000HZ求得,这个有问题
,串口1应该是36000000HZ

使用特权

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

本版积分规则

46

主题

180

帖子

0

粉丝