不使用hal库
时间: 2023-09-15 12:24:23 浏览: 40
如果你想不使用HAL库来编写STM32的程序,你可以使用CMSIS(Cortex Microcontroller Software Interface Standard)作为替代。CMSIS是一套由ARM推出的标准接口,用于处理器内核和外设的驱动程序开发。它提供了一组API,使得开发者可以使用标准的C语言函数来访问STM32的不同资源,如GPIO、定时器、中断控制器等。
使用CMSIS需要先下载并安装CMSIS库文件,然后在编写代码时包含所需的头文件即可。下面是一个简单的使用CMSIS实现闪烁LED的示例代码:
```
#include "stm32f1xx.h"
int main(void)
{
// 初始化GPIOC为输出模式
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
GPIOC->CRH &= ~(GPIO_CRH_MODE13 | GPIO_CRH_CNF13);
GPIOC->CRH |= GPIO_CRH_MODE13_0;
while(1)
{
// 点亮LED
GPIOC->BSRR = GPIO_BSRR_BS13;
// 延时
for(int i = 0; i < 1000000; i++);
// 熄灭LED
GPIOC->BSRR = GPIO_BSRR_BR13;
// 延时
for(int i = 0; i < 1000000; i++);
}
}
```
上述代码中,我们使用了CMSIS库中的头文件`stm32f1xx.h`,并直接访问了STM32的寄存器,从而控制了LED的闪烁。需要注意的是,使用CMSIS需要了解STM32的内部结构和寄存器映射关系,因此需要一定的硬件基础知识。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)