图中D7对应的是GPIOB26,D10对应的是GPIOC12.编写C语言函数int led(),使得D7与D10发光二极管出现同时亮同时灭的现象?
时间: 2023-06-26 15:08:20 浏览: 94
假设你使用的是STM32开发板,可以使用STM32CubeMX进行引脚配置和代码生成,以下是一个可能的实现:
```c
#include "main.h"
/* 定义D7和D10对应的GPIO引脚 */
#define LED1_Pin GPIO_PIN_13
#define LED1_GPIO_Port GPIOC
#define LED2_Pin GPIO_PIN_2
#define LED2_GPIO_Port GPIOB
/* 使LED1和LED2同时亮 */
void led_on(void) {
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET);
}
/* 使LED1和LED2同时灭 */
void led_off(void) {
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET);
}
/* 使D7和D10的发光二极管同时亮同时灭 */
int led(void) {
while (1) {
led_on();
HAL_Delay(500);
led_off();
HAL_Delay(500);
}
return 0;
}
```
其中,`HAL_GPIO_WritePin`函数用于控制GPIO引脚的输出电平,`HAL_Delay`函数用于延时一段时间。在正常的程序中,要记得调用`HAL_Init()`和`HAL_MspInit()`进行初始化。
阅读全文