OpenEdv-开源电子网

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

usart3串口初始化问题

[复制链接]

22

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2012-12-24
在线时间
0 小时
发表于 2013-1-1 12:11:46 | 显示全部楼层 |阅读模式

void usart3_init(u32 pclk2,u32 bound)
{   
 float temp;
 u16 mantissa;
 u16 fraction;   
 temp=(float)(pclk2*1000000)/(bound*16);//得到USARTDIV
 mantissa=temp;               //得到整数部分
 fraction=(temp-mantissa)*16;           //得到小数部分 
    mantissa<<=4;
 mantissa+=fraction;

 RCC->APB2ENR|=1<<3;  //使能PORTB口时钟
 RCC->APB1ENR|=1<<18;    //使能串口3时钟
 GPIOB->CRH&=0XFFFF00FF; //先清零
 GPIOB->CRH|=0X00008B00; //PB11为复用推挽输出,PB10为输入模式

 RCC->APB1RSTR|=1<<18; //复位串口3
 RCC->APB1RSTR&=~(1<<18);//停止复位
    USART3->BRR=mantissa;
 USART3->CR1|=0X200C;
}
请问我usart1可以通信,但将其改为UART3串口就不可以了,我这程序有改错吗,请求帮助

天道酬勤
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-1-1 18:05:21 | 显示全部楼层
电路连接有没有错误?
先检查硬件。程序看上去没问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 1 反对 0

使用道具 举报

22

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2012-12-24
在线时间
0 小时
 楼主| 发表于 2013-1-2 10:13:00 | 显示全部楼层
原子大哥,为什么串口3的主时钟是串口1的一半,我改了下波特率就可以通信,求解?????
天道酬勤
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-1-2 10:33:14 | 显示全部楼层
看STM32的时钟树图。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-20 04:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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