| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /*********************************************************************************************************
- * 模块名称:LED.c
- * 摘 要:LED模块
- * 当前版本:1.0.0
- * 作 者:Leyutek(COPYRIGHT 2018 - 2021 Leyutek. All rights reserved.)
- * 完成日期:2021年07月01日
- * 内 容:
- * 注 意:
- **********************************************************************************************************
- * 取代版本:
- * 作 者:
- * 完成日期:
- * 修改内容:
- * 修改文件:
- *********************************************************************************************************/
- /*********************************************************************************************************
- * 包含头文件
- *********************************************************************************************************/
- #include "Led.h"
- #include "gd32e230x_conf.h"
- /*********************************************************************************************************
- * 宏定义
- *********************************************************************************************************/
- /*********************************************************************************************************
- * 枚举结构体
- *********************************************************************************************************/
- /*********************************************************************************************************
- * 内部变量定义
- *********************************************************************************************************/
- /*********************************************************************************************************
- * 内部函数声明
- *********************************************************************************************************/
- static void ConfigLEDGPIO(void); //配置USER_LED的GPIO
- /*********************************************************************************************************
- * 内部函数实现
- *********************************************************************************************************/
- /*********************************************************************************************************
- * 函数名称:ConfigLEDGPIO
- * 函数功能:配置LED的GPIO
- * 输入参数:void
- * 输出参数:void
- * 返 回 值:void
- * 创建日期:2021年07月01日
- * 注 意:
- *********************************************************************************************************/
- static void ConfigLEDGPIO(void)
- {
- //使能RCU相关时钟
- rcu_periph_clock_enable(RCU_GPIOB); //使能GPIOB的时钟
- gpio_mode_set(USR_LED_RCU, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, USR_LED); //设置GPIO模式
- gpio_output_options_set(USR_LED_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, USR_LED); //设置GPIO输出模式及速度
- gpio_bit_reset(USR_LED_RCU, USR_LED); //将USER_LED默认状态设置为打开
- }
- /*********************************************************************************************************
- * API函数实现
- *********************************************************************************************************/
- /*********************************************************************************************************
- * 函数名称:InitLED
- * 函数功能:初始化LED模块
- * 输入参数:void
- * 输出参数:void
- * 返 回 值:void
- * 创建日期:2021年07月01日
- * 注 意:
- *********************************************************************************************************/
- void InitLED(void)
- {
- ConfigLEDGPIO(); //配置LED的GPIO
- }
- /*********************************************************************************************************
- * 函数名称:LEDFlicker1
- * 函数功能:LED闪烁函数
- * 输入参数:cnt
- * 输出参数:void
- * 返 回 值:void
- * 创建日期:2021年07月01日
- * 注 意:LEDFlicker1在Proc2msTask中调用,cnt为250时表示每500ms更改一次LED状态
- *********************************************************************************************************/
- void LEDFlicker1(unsigned short cnt)
- {
- static unsigned short s_iCnt; //定义静态变量s_iCnt作为计数器
-
- s_iCnt++; //计数器的计数值加1
-
- if(s_iCnt >= cnt) //计数器的计数值大于cnt
- {
- s_iCnt = 0; //重置计数器的计数值为0
- //USER_LED状态取反,实现USER_LED闪烁
- gpio_bit_write(USR_LED_RCU, USR_LED, 1-gpio_output_bit_get(USR_LED_RCU, USR_LED));
- }
- }
- /*********************************************************************************************************
- * 函数名称:LEDFlicker2
- * 函数功能:LED闪烁函数
- * 输入参数:void
- * 输出参数:void
- * 返 回 值:void
- * 创建日期:2021年07月01日
- * 注 意:LEDFlicker2在Proc1SecTask中调用,每100ms更改一次LED状态
- *********************************************************************************************************/
- void LEDFlicker2(void)
- {
- //USER_LED状态取反,实现USER_LED闪烁
- gpio_bit_toggle(USR_LED_RCU, USR_LED);
- }
|