STM32F401RET6寄存器手册阅读标记

目标:在STM32F401RE上用配置寄存器方法实现USART通信协议

思路:全双工异步通信,由TX引脚与RX引脚组成

        配置时钟—配置GPIO口—配置USART相关寄存器

实现过程

1.配置时钟

查阅寄存器手册可知,需要配置时钟的模块有:USART1,IO port A。

// USARTI_TX对应PA9引脚;USART1_RX对应PA10引脚(查阅产品手册42页可知)

其中,USDART1在APB2总线上;IO port A在AHB总线上。

//RCC_AHB1ENR与RCC_APB2ENR寄存器

时钟树如下:

RCC_CR寄存器的HSIRDY位为只读位,当读取值为1时,表示HSI振荡器准备就绪,当HSION位被设置时,HSIRDY会自动设置为低电平。
/*
对于时钟树配置,可参考STM32CubeMX中的时钟树配置,STM32CubeMX将基础配置图像化,较为简单。(STM32CubeMX使用教程: 【STM32】HAL库 STM32CubeMX系列学习教程_stm32hal库学习路线-CSDN博客
*/

 

此处演示HSI振荡器配置代码(如有错误欢迎指正):

//读取HSIRDY位的值
uint8_t is_hsi_ready(void) 
{
 
    uint32_t hsirdy_mask = (uint32_t)0x00000002;   
    uint32_t cr_register = RCC->CR;   
    uint32_t hsirdy_bit = (cr_register & hsirdy_mask) != 0;
    return hsirdy_bit;  
}


void HSI_Init ()
{
	uint8_t HSIRDY = is_hsi_ready();
	while(HSIRDY == 1);
	RCC->CR |= (uint32_t)0x00000001;
}

//问题标记:依据什么确定分频系数

2.配置GPIO口

对于USART1_TX口,初始化为“复用推挽输出模式”;USART1_RX口,初始化为“上拉输入模式”。

3.配置USART相关寄存器

(1)时序图(寄存器手册510页)

对于数据传输,有8位字长和9位字长两种模式,其中,9位字长添加了奇偶校验位,在USART_CR1寄存器的M位设置使用哪种字长模式,关于空闲字符(Idle character)和分隔符(break character),介绍如下:

(2)TX配置方法(寄存器手册512页)

 

(3)RX配置方法(寄存器手册515页)

其它配置略。

(4)配置寄存器(寄存器手册548页)

此处演示USART_CR1寄存器配置代码:

//配置TX模式
USART->CR1 |= (uint32_t)0X00002008;

USART_BRR寄存器:

其余寄存器略。

//问题标记:USART配置寄存器信息是如何与USART1/2/3建立联系的(为什么不是三个分别配置)

4,寄存器手册和产品手册下载:

链接:https://pan.baidu.com/s/1pRsMbcSpS8mCGbcNY1y4mA 
提取码:1111

如有错误,欢迎指正

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值