不要调用库,直接操作寄存器
时间: 2023-08-28 12:03:48 浏览: 77
modbus库编译通过可直接调用
好的,以下是不使用库函数,直接操作寄存器点亮PC13灯的STM32代码:
```c
#include "stm32f10x.h"
int main(void)
{
// 使能GPIOC时钟
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
// 配置PC13引脚为推挽输出模式,最大输出速度50MHz
GPIOC->CRH &= ~(GPIO_CRH_MODE13 | GPIO_CRH_CNF13);
GPIOC->CRH |= GPIO_CRH_MODE13_0;
while(1)
{
// PC13置高
GPIOC->BSRR = GPIO_BSRR_BS13;
// 延时
for(int i=0; i<1000000; i++);
// PC13置低
GPIOC->BRR = GPIO_BRR_BR13;
// 延时
for(int i=0; i<1000000; i++);
}
}
```
在这个程序中,我们首先使能了GPIOC的时钟,并且直接操作GPIOC的寄存器,将PC13引脚配置为推挽输出模式,最大输出速度50MHz。然后在一个无限循环中,通过设置GPIOC的BSRR寄存器和BRR寄存器,将PC13引脚置高和置低,以控制灯的亮灭状态。程序中的延时可以通过修改循环次数来实现不同的延时效果。
阅读全文