OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5632|回复: 0

MiniSTM32板子上面的串口问题

[复制链接]

31

主题

175

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2013-1-13
在线时间
6 小时
发表于 2013-3-22 21:10:46 | 显示全部楼层 |阅读模式
下面一段串口初始化USART1能够重映像到PB6和PB7脚。我写的程序总是不行。不重映像可以。


void UART1Config(uint8 SystemClock,uint16 baudrate)
{
double Num;
uint16 Mantissa;
uint8 Fraction;
RCC->APB2RSTR |= 1 << 14;
RCC->APB2RSTR &= ~(1 << 14);   //复位

RCC->APB2ENR |= 1 << 14;  //UART1时钟使能
RCC->APB2ENR |= 0X01;    //辅助功能时钟使能
RCC->APB2ENR |= 1 << 3; //PB口时钟开启

AFIO->MAPR |= 1 << 2;     //UART1的重映射TX/PB6,RX/PB7
GPIOB->CRL &= 0X00FFFFFF;
GPIOB->CRL |= 0X8B000000; //TX为复用功能推挽输出,RX为上拉输入
GPIOB->ODR |= 1 << 7;     //上拉
Num = (double)(SystemClock * 1000000) / baudrate  / 16; //算出DIV_Mantissa和DIV_Fraction
Mantissa = (uint16)Num;
Fraction = (uint8)((Num - Mantissa) * 16);
USART1->BRR = ((Mantissa << 4) + Fraction);
USART1->CR1 &= ~(1 << 12);  //一个起始位,8个数据位,n个停止位
USART1->CR1 |= 1 << 5;      //收到数据产生中断
USART1->CR1 |= 1 << 3;   //发送使能
USART1->CR1 |= 1 << 2;   //接收使能
USART1->CR1 |= 1 << 13;   //串口使能
NVIC_Config(3,3,USART1_IRQChannel,2);  
}

看看哪里有问题啊

电子的道路是孤独的,要懂得左手温暖右手,要懂得把debug当作快乐去欣赏,去享受,那样你才会成功...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-22 12:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表