stm32单片机代码实例
时间: 2024-11-18 22:16:47 浏览: 16
STM32单片机是一种由STMicroelectronics公司生产的嵌入式微控制器系列,常用于物联网、工业控制、消费电子等领域。下面是一个简单的STM32F103C8T6(如STM32F103C8T6)上Hello World程序的例子,它通过LED灯显示一些文字:
```c
#include "stm32f1xx.h" // 引入STM32的头文件
// LED GPIO初始化配置
GPIO_InitTypeDef GPIO_InitStructure;
void LedInit(uint8_t LedPin) {
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); // 启动GPIOD时钟
GPIO_InitStructure.GPIO_Pin = LedPin; // 设置LED对应的GPIO管脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; // 输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 高速推挽
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; // 推挽输出
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; // 上拉下拉都不接
GPIO_Init(GPIOD, &GPIO_InitStructure); // 初始化GPIO
}
int main(void) {
LedInit(LED1); // 初始化LED1 (假设LED1对应GPIOD Pin 13)
while (1) {
GPIO_SetBits(GPIOD, GPIO_Pin_13); // 开启LED1
HAL_Delay(500); // 等待500ms
GPIO_ResetBits(GPIOD, GPIO_Pin_13); // 关闭LED1
HAL_Delay(500); // 再等待500ms
}
return 0;
}
```
在这个例子中,我们首先设置了一个GPIO口来驱动LED,然后在一个无限循环里交替点亮和熄灭LED。`HAL_Delay()`函数来自STM32的HAL库,用于暂停程序执行指定的时间。
阅读全文