写一个stm 32c8t6输出PB14按键一控制PA 8LED灯长按下亮松开灭
时间: 2024-05-08 16:18:12 浏览: 149
您可以通过以下代码实现该功能:
```c
#include "stm32c8t6.h"
void delay(int n)
{
for(int i=0; i<n; i++);
}
int main(void)
{
RCC_AHB1ENR |= 0x00000002; // 使能GPIOB时钟
RCC_AHB1ENR |= 0x00000001; // 使能GPIOA时钟
GPIOB_MODER &= ~0x000C0000; // 将PB14设置为输入模式
GPIOA_MODER |= 0x00000100; // 将PA8设置为输出模式
while(1)
{
if(GPIOB_IDR & 0x00004000) // 判断PB14是否按下,0x00004000对应PB14
{
delay(2000000); // 延时消除抖动
if(GPIOB_IDR & 0x00004000) // 再次判断PB14是否按下
{
GPIOA_ODR |= 0x00000100; // 点亮PA8,0x00000100对应PA8
}
}
else
{
delay(2000000); // 延时消除抖动
if(!(GPIOB_IDR & 0x00004000)) // 再次判断PB14是否松开
{
GPIOA_ODR &= ~0x00000100; // 熄灭PA8
}
}
}
}
```
这是一个简单的GPIO控制程序,当PB14按下时,PA8会亮起来,松开时会熄灭。
阅读全文