OpenEdv-开源电子网

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

对原子哥usart.c中初始化的疑问

[复制链接]

10

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2012-9-21
在线时间
0 小时
发表于 2012-9-28 23:11:39 | 显示全部楼层 |阅读模式
下面是原子大哥的代码
void uart_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<<2;   //使能PORTA口时钟 
    RCC->APB2ENR|=1<<14;  //使能串口时钟
    GPIOA->CRH&=0XFFFFF00F;
    GPIOA->CRH|=0X000008B0;//IO状态设置
         
    RCC->APB2RSTR|=1<<14;   //复位串口1
    RCC->APB2RSTR&=~(1<<14);//停止复位             
    //波特率设置
     USART1->BRR=mantissa; // 波特率设置     
    USART1->CR1|=0X200C;  //1位停止,无校验位.
#ifdef EN_USART1_RX          //如果使能了接收
    //使能接收中断
    USART1->CR1|=1<<8;    //PE中断使能
    USART1->CR1|=1<<5;    //接收缓冲区非空中断使能           
    MY_NVIC_Init(3,3,USART1_IRQChannel,2);//组2,最低优先级
#endif
}

*******************************************************************************
问题如下:
   1. RCC->APB2ENR|=1<<2;   //使能PORTA口时钟 
    2.RCC->APB2ENR|=1<<14;  //使能串口时钟
    3.GPIOA->CRH&=0XFFFFF00F;
    4.GPIOA->CRH|=0X000008B0;//IO状态设置
这个usart1的配置有点不明白,既然usart1是复用功能,只要设置发送器和接收器使能,按理说就开启了
usart功能了。为什么还要对porta时钟使能,开启一个串口时钟不行吗??(实验证明不开启porta时钟不行,但我不明白)
另外 为什么还要单独设置  TX RX作为输出输入。我试了TX如果不设置输出不行,另外RX用作任何输入都是可以的。
希望原子哥或者其他高手能解开本菜鸟的疑惑,谢谢了

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-9-28 23:55:39 | 显示全部楼层
IO口和串口是单独的外设,故要分别使能其时钟.
TX为发送端口,按照ST的说法,就应该设置0XB,即复用输出.
而RX为输入端口,一般设置0X08,带上下拉的输入.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2012-9-21
在线时间
0 小时
 楼主| 发表于 2012-9-29 05:48:23 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢了。呵呵
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 03:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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