用C语言写一段keil的程序,使STM32芯片实现输入ON/OFF的的指令,灯对应亮或灭
时间: 2024-09-18 10:14:52 浏览: 58
STM32呼吸灯程序_keil呼吸灯编程_呼吸灯keil程序_stm32f1呼吸灯_STM32呼吸灯_
5星 · 资源好评率100%
在Keil环境下编写STM32F103系列的C语言程序,我们可以利用GPIO端口控制LED的点亮和熄灭。下面是一个简单的示例,假设我们有一个GPIOB上的LED(PB0):
```c
#include "stm32f10x.h" // 包含STM32的头文件
// 定义GPIO口初始化函数
void GPIO_Init(void)
{
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); // 启动GPIOB时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // 配置PB0(LED)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 输出推挽模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 速度为50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); // 初始化GPIOB
}
// LED开关函数
void LED_Toggle(uint8_t state)
{
if (state == HIGH) {
GPIO_SetBits(GPIOB, GPIO_Pin_0); // 点亮LED
} else {
GPIO_ResetBits(GPIOB, GPIO_Pin_0); // 熄灭LED
}
}
int main(void)
{
GPIO_Init(); // 初始化GPIO
while(1)
{
LED_Toggle(HAL_GPIO_ReadPin(GPIOB, GPIO_Pin_0)); // 根据GPIO读取的状态切换LED状态
HAL_Delay(1000); // 暂停1秒
}
return 0;
}
```
在这个例子中,`LED_Toggle`函数接受一个状态参数,通过`HAL_GPIO_ReadPin`获取GPIOB上PB0的当前电平,如果为高,则点亮LED,反之则熄灭。主循环会不断检测并切换LED状态。
阅读全文