32F103ret6的PA6脚写一个控制led两秒闪烁一次的代码
时间: 2024-03-12 11:46:59 浏览: 44
好的,以下是基于STM32CubeIDE的代码实现:
```
#include "main.h"
/* 定义LED引脚 */
#define LED_PIN GPIO_PIN_6
#define LED_PORT GPIOA
/* 定义延时函数 */
void delay(uint32_t time) {
uint32_t i;
for (i = 0; i < time; i++) {
__NOP();
}
}
int main(void) {
/* 初始化HAL库 */
HAL_Init();
/* 初始化时钟 */
SystemClock_Config();
/* 初始化GPIO */
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOA_CLK_ENABLE(); // 使能GPIOA时钟
GPIO_InitStruct.Pin = LED_PIN; // 配置引脚
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 推挽输出
GPIO_InitStruct.Pull = GPIO_NOPULL; // 无上下拉
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; // 低速模式
HAL_GPIO_Init(LED_PORT, &GPIO_InitStruct); // 初始化GPIO
/* 无限循环 */
while (1) {
HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET); // 设置引脚电平为高
delay(2000000); // 延时2秒
HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET); // 设置引脚电平为低
delay(2000000); // 延时2秒
}
}
```
该代码中,我们使用了GPIOA的第6个引脚,即PA6作为LED控制引脚。在while循环中,我们先将LED引脚设置为高电平,延时2秒后再将LED引脚设置为低电平,再延时2秒,如此往复,就可以实现LED每2秒闪烁一次的效果。
阅读全文