stm32f103CRH寄存器
时间: 2024-06-16 13:04:32 浏览: 118
STM32F103CRH是一款基于ARM Cortex-M3内核的微控制器,它是STMicroelectronics公司推出的一款高性能、低功耗的单片机产品。该芯片具有丰富的外设和强大的计算能力,广泛应用于工业控制、通信、汽车电子等领域。
关于STM32F103CRH的寄存器,以下是一些常见的寄存器介绍:
1. GPIO寄存器:用于控制芯片的通用输入输出引脚。包括GPIOx_CRL和GPIOx_CRH寄存器,用于配置引脚的工作模式、输出类型、输出速度等。
2. RCC寄存器:用于控制时钟系统。包括RCC_CR、RCC_CFGR、RCC_APB1ENR、RCC_APB2ENR等寄存器,用于配置系统时钟源、时钟分频等。
3. NVIC寄存器:用于控制中断向量表和中断优先级。包括NVIC_ISER、NVIC_ICER、NVIC_IPR等寄存器,用于使能和禁止中断、设置中断优先级等。
4. USART寄存器:用于配置和控制串行通信接口。包括USART_CR1、USART_CR2、USART_CR3、USART_SR等寄存器,用于设置波特率、数据位数、停止位数、校验位等。
5. TIM寄存器:用于配置和控制定时器。包括TIMx_CR1、TIMx_CR2、TIMx_SMCR、TIMx_CCMR1等寄存器,用于设置定时器的工作模式、计数方式、输入捕获和输出比较等。
以上只是一些常见的寄存器,实际上STM32F103CRH还有很多其他功能模块的寄存器,如ADC、SPI、I2C等。如果您有具体的寄存器需求或更深入的了解,可以提供更详细的问题。
相关问题
stm32f103r6寄存器点灯
### STM32F103R6 单片机通过寄存器操作实现LED点亮
对于STM32F103系列单片机而言,直接操作寄存器是一种深入理解硬件工作原理的方式。这种方式绕过了标准外设库或HAL库的抽象层,提供了更精细的操作能力。
#### GPIO初始化配置
为了使能特定端口上的GPIO功能并设置其模式(输入/输出),需要修改对应的`APB2ENR`寄存器来开启时钟供给,并调整相应的控制寄存器如`CRL`和`CRH`以指定引脚的工作状态[^1]。
```c
// 开启GPIOA时钟
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
// 设置PA0为推挽输出模式,最大速度50MHz
GPIOA->CRL &= ~(0xF << (4 * 0)); // 清除原有配置
GPIOA->CRL |= (0x02 << (4 * 0)); // 推挽输出模式
```
#### 控制LED的状态变化
一旦完成了上述初始化过程之后,就可以利用位带操作轻松改变LED连接引脚电平高低从而达到开关效果:
```c
#define LED_ON() (GPIOA->BSRR = GPIO_BSRR_BR_0) /* 关闭 */
#define LED_OFF() (GPIOA->BSRR = GPIO_BSRR_BS_0) /* 打开 */
while(1){
LED_ON();
for(volatile int i=0;i<1000000;i++); // 延迟循环
LED_OFF();
for(volatile int i=0;i<1000000;i++);
}
```
这段程序展示了如何使用简单的延时循环让LED按照一定频率闪烁。实际应用中建议替换为此种方法以外更为精确可靠的定时机制[^2]。
#### 完整示例代码展示
下面给出了一段完整的用于演示目的的小型应用程序源码片段,它实现了基于寄存器级别的编程接口去驱动外部接线至PA0的一个LED灯泡持续交替亮灭的效果。
```c
#include "stm32f1xx.h"
int main(void)
{
// 配置系统时钟
// 初始化GPIOA PA0 输出
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // 使能GPIOA时钟
GPIOA->CRL &= ~(0xF << (4 * 0)); // 清除旧配置
GPIOA->CRL |= (0x02 << (4 * 0)); // 设定为推挽输出模式
while (1)
{
GPIOA->BSRR = GPIO_BSRR_BS_0;
for(volatile unsigned long i = 0 ;i < 1000000UL ; ++i);
GPIOA->BSRR = GPIO_BSRR_BR_0;
for(volatile unsigned long i = 0 ;i < 1000000UL ; ++i);
}
}
```
STM32F103RB GPIO_CRH寄存器CNF
STM32F103RB的GPIO_CRH寄存器是通用输入/输出控制寄存器的一部分,它主要用于GPIO配置功能。CNF(Configuration and Normal Function)字节包含了GPIO的配置信息,例如:
1. **速度设置**:CNF寄存器的一部分可以指定GPIO引脚的数据传输速率,如低速(LV)、高速(HV)等。
2. **上拉/下拉模式**:通过CNF配置,你可以选择GPIO作为输入时是否启用上拉或下拉电阻,这对于防止外部信号干扰有重要作用。
3. **推挽输出模式**:对于某些支持的GPIO引脚,CNF还可以设置为推挽输出,使得GPIO可以在高电平(VDD)和低电平(地线)之间直接切换,提供更强的驱动能力。
4. **中断配置**:CNF可能还涉及中断的相关设置,比如边沿检测、中断使能或禁止等。
5. **备用功能映射**:如果该GPIO被用于GPIO外设之外的功能,CNF可能需要额外配置以确保正确的工作模式。
操作GPIO_CRH-CNF之前,你需要查阅具体的STM32官方文档,因为不同的系列和型号可能会有不同的特性。
阅读全文