点一个灯,51是“一句话的事”,而STM32是“一个流程的事”。
51点灯
控制GPIO口高低电平即可
#include <REGX52.H> // 包含STC89C52的头文件,定义了P1等寄存器
sbit LED = P1^0; // 使用sbit关键字定义P1口的第0位为LED
// 简单的延时函数,用于产生闪烁间隔
void Delay_ms(unsigned int ms) {
unsigned int i, j;
for(i=ms; i>0; i--)
for(j=114; j>0; j--);
}
void main() { // 主函数
while(1) { // 无限循环
LED = 0; // P1.0输出低电平,点亮LED(假设共阳接法)
Delay_ms(500); // 延时500毫秒
LED = 1; // P1.0输出高电平,熄灭LED
Delay_ms(500); // 延时500毫秒
}
}
stm32点灯
使能时钟
配置模式
配置类型
配置速度
设置初始状态
控制电平
// 寄存器地址定义
#define RCC_APB2ENR (*(volatile unsigned int*)0x40021018) // 时钟使能寄存器地址
#define GPIOA_CRL (*(volatile unsigned int*)0x40010800) // GPIOA配置寄存器低地址
#define GPIOA_ODR (*(volatile unsigned int*)0x4001080C) // GPIOA输出数据寄存器地址
int main(void) {
// 1. 使能GPIOA的时钟 (必做第一步!)
RCC_APB2ENR |


2458

被折叠的 条评论
为什么被折叠?



