打印
[应用相关]

StM32 USART 串口的问题

[复制链接]
1260|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 | 只看该作者
时钟初始化的对不对?

使用特权

评论回复
5
Rangar| | 2017-1-22 15:08 | 只看该作者
你发的是字符的话,串口调试助手接收不要选择hex查看

使用特权

评论回复
6
Stannis| | 2017-1-22 15:39 | 只看该作者
就说0x80这个数 它是字符吗?  

‘a’ = 0x61

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

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

使用特权

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

使用特权

评论回复
8
oayzw| | 2017-1-23 07:58 | 只看该作者
拿示波器或逻辑分析仪看看输出波形

使用特权

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

使用特权

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

使用特权

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

本版积分规则

46

主题

180

帖子

0

粉丝