微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于STM32寄存器配置串口的问题

关于STM32寄存器配置串口的问题

时间:10-02 整理:3721RD 点击:
配置串口1输出一个字符,但是没有效果请大神指导一下

  1. #include "stm32f10x.h"

  2. void Usart_Init()
  3. {
  4.     RCC->APB2ENR|=0x40000000;
  5.     RCC->APB2ENR|=0X00000004;
  6.     GPIOA->CRH&=0xFFFFF00F;
  7.     GPIOA->CRH|=0x000008B0;
  8.    
  9.     RCC->APB2RSTR|=1<<14;   //复位串口1
  10.         RCC->APB2RSTR&=~(1<<14);//停止复位          
  11.    
  12.     USART1->BRR=0X1D4C;
  13.    
  14.     USART1->CR1|=0X0000200C;
  15. }
  16. int main()
  17. {
  18.     Usart_Init();
  19.     while(1)
  20.     {

  21.             USART1->DR='Y';
  22.             while((USART1->SR&0X40)==0);
  23.             while(1);
  24.         
  25.     }
  26. }

复制代码


RCC->APB2ENR|=0x40000000;?要使能串口?
RCC->APB2ENR|=1<<14;
或者
RCC->APB2ENR|=0x00004000;
还有看看波特率咋算 有没有算错

其实吧寄存器了解会用就成  用库函数就没这种错

谢谢,这里的错误发现了。修改过来效果一样。就几句找这个问题找的心都碎了

还是用库函数吧,这数字看着就头大,一个个的去对寄存器表太麻烦了。用库函数不会出现这种问题的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top