#include "hal_gpio.h"
#include "leds.h"
/* LED0. */
#define LED0_GPIO_PORT GPIOI
#define LED0_GPIO_PIN GPIO_PIN_0
/* LED1. */
#define LED1_GPIO_PORT GPIOD
#define LED1_GPIO_PIN GPIO_PIN_2
/* LED2. */
#define LED2_GPIO_PORT GPIOC
#define LED2_GPIO_PIN GPIO_PIN_6
/* LED3. */
#define LED3_GPIO_PORT GPIOC
#define LED3_GPIO_PIN GPIO_PIN_9
void Delay(void);
void GPIO_Toggle(GPIO_Type * GPIOx, uint16_t pin){
GPIOx->ODR ^= pin;
}
void leds_init(void){
GPIO_Init_Type gpio_init;
/* LED0. */
gpio_init.Pins = GPIO_PIN_0;
gpio_init.PinMode = GPIO_PinMode_Out_PushPull;
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOI, &gpio_init);
/* LED1. */
gpio_init.Pins = GPIO_PIN_2;
gpio_init.PinMode = GPIO_PinMode_Out_PushPull;
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &gpio_init);
/* LED2. */
gpio_init.Pins = GPIO_PIN_6;
gpio_init.PinMode = GPIO_PinMode_Out_PushPull;
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &gpio_init);
/* LED3. */
gpio_init.Pins = GPIO_PIN_9;
gpio_init.PinMode = GPIO_PinMode_Out_PushPull;
gpio_init.Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &gpio_init);
}
void leds_error_on(void){
GPIO_WriteBit(LED0_GPIO_PORT, LED0_GPIO_PIN, 0u); /* led on. */
}
void leds_error_off(void){
GPIO_WriteBit(LED0_GPIO_PORT, LED0_GPIO_PIN, 1u); /* led off. */
}
void leds_error_toggle(void){
GPIO_Toggle(LED0_GPIO_PORT, LED0_GPIO_PIN);
}
uint8_t leds_error_isOn(void){
uint8_t bitstatus = 0x00;
if(GPIO_ReadOutDataBit(LED0_GPIO_PORT, LED0_GPIO_PIN))
return bitstatus = 0x01;
else
return bitstatus = 0x00;
}
void leds_error_blink(void){}
void leds_radio_on(void){
GPIO_WriteBit(LED1_GPIO_PORT, LED1_GPIO_PIN, 0u); /* led on. */
}
void leds_radio_off(void){
GPIO_WriteBit(LED1_GPIO_PORT, LED1_GPIO_PIN, 1u); /* led off. */
}
void leds_radio_toggle(void){
GPIO_Toggle(LED1_GPIO_PORT, LED1_GPIO_PIN);
}
uint8_t leds_radio_isOn(void){
uint8_t bitstatus = 0x00;
if(GPIO_ReadOutDataBit(LED1_GPIO_PORT, LED1_GPIO_PIN))
return bitstatus = 0x01;
else
return bitstatus = 0x00;
}
void leds_sync_on(void){
GPIO_WriteBit(LED2_GPIO_PORT, LED2_GPIO_PIN, 0u); /* led on. */
}
void leds_sync_off(void){
GPIO_WriteBit(LED2_GPIO_PORT, LED2_GPIO_PIN, 1u); /* led off. */
}
void leds_sync_toggle(void){
GPIO_Toggle(LED2_GPIO_PORT, LED2_GPIO_PIN);
}
uint8_t leds_sync_isOn(void){
uint8_t bitstatus = 0x00;
if(GPIO_ReadOutDataBit(LED2_GPIO_PORT, LED2_GPIO_PIN))
return bitstatus = 0x01;
else
return bitstatus = 0x00;
}
void leds_debug_on(void){
GPIO_WriteBit(LED3_GPIO_PORT, LED3_GPIO_PIN, 0u); /* led on. */
}
void leds_debug_off(void){
GPIO_WriteBit(LED3_GPIO_PORT, LED3_GPIO_PIN, 1u); /* led off. */
}
void leds_debug_toggle(void){
GPIO_Toggle(LED3_GPIO_PORT, LED3_GPIO_PIN);
}
uint8_t leds_debug_isOn(void){
uint8_t bitstatus = 0x00;
if(GPIO_ReadOutDataBit(LED3_GPIO_PORT, LED3_GPIO_PIN))
return bitstatus = 0x01;
else
return bitstatus = 0x00;
}
void leds_all_on(void){
GPIO_WriteBit(LED0_GPIO_PORT, LED0_GPIO_PIN, 0u);
GPIO_WriteBit(LED1_GPIO_PORT, LED1_GPIO_PIN, 0u);
GPIO_WriteBit(LED2_GPIO_PORT, LED2_GPIO_PIN, 0u);
GPIO_WriteBit(LED3_GPIO_PORT, LED3_GPIO_PIN, 0u);
}
void leds_all_off(void){
GPIO_WriteBit(LED0_GPIO_PORT, LED0_GPIO_PIN, 1u);
GPIO_WriteBit(LED1_GPIO_PORT, LED1_GPIO_PIN, 1u);
GPIO_WriteBit(LED2_GPIO_PORT, LED2_GPIO_PIN, 1u);
GPIO_WriteBit(LED3_GPIO_PORT, LED3_GPIO_PIN, 1u);
}
void leds_all_toggle(void){
GPIO_Toggle(LED0_GPIO_PORT, LED0_GPIO_PIN);
GPIO_Toggle(LED1_GPIO_PORT, LED1_GPIO_PIN);
GPIO_Toggle(LED2_GPIO_PORT, LED2_GPIO_PIN);
GPIO_Toggle(LED3_GPIO_PORT, LED3_GPIO_PIN);
}
void leds_circular_shift(void){
GPIO_Toggle(LED0_GPIO_PORT, LED0_GPIO_PIN);
Delay();
GPIO_Toggle(LED0_GPIO_PORT, LED0_GPIO_PIN);
Delay();
GPIO_Toggle(LED1_GPIO_PORT, LED1_GPIO_PIN);
Delay();
GPIO_Toggle(LED1_GPIO_PORT, LED1_GPIO_PIN);
Delay();
GPIO_Toggle(LED2_GPIO_PORT, LED2_GPIO_PIN);
Delay();
GPIO_Toggle(LED2_GPIO_PORT, LED2_GPIO_PIN);
Delay();
GPIO_Toggle(LED3_GPIO_PORT, LED3_GPIO_PIN);
Delay();
GPIO_Toggle(LED3_GPIO_PORT, LED3_GPIO_PIN);
}
void leds_increment(void){}
void Delay(void){
unsigned long ik;
for(ik=0;ik<0x7fff8;ik++) ;
}
———————————————— 版权声明:本文为CSDN博主「极术社区」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_47569031/article/details/128185568