乐清柳市阿里巴巴做网站的,兴安网站建设,网站制作设计多少钱,wordpress幻灯片回收站在哪根据上图可知使用的引脚分别是PA8,PE6,PF6流水灯功能的实现要分别初始化这几个引脚 流水灯实现 编写流水灯代码 LED.C #include gd32f30x.h // Device header
#include Delay.h
// 初始化LED灯
void LED_Init(void){// 使能RCU时钟… 根据上图可知使用的引脚分别是PA8,PE6,PF6流水灯功能的实现要分别初始化这几个引脚 流水灯实现 编写流水灯代码 LED.C #include gd32f30x.h // Device header
#include Delay.h
// 初始化LED灯
void LED_Init(void){// 使能RCU时钟rcu_periph_clock_enable(RCU_GPIOA);// 配置引脚输出频率gpio_init( GPIOA, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, GPIO_PIN_8);// 初始化GPIOE的引脚rcu_periph_clock_enable(RCU_GPIOE);// 配置引脚输出频率gpio_init( GPIOE, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, GPIO_PIN_6);// 初始化GPIOE的引脚rcu_periph_clock_enable(RCU_GPIOF);// 配置引脚输出频率gpio_init( GPIOF, GPIO_MODE_OUT_PP, GPIO_OSPEED_2MHZ, GPIO_PIN_6);
}// 实现循环流水灯的功能
void LED_Cycle(void){DelayInit();while(1){gpio_bit_set(GPIOA, GPIO_PIN_8); DelayNms(1000);gpio_bit_reset(GPIOA, GPIO_PIN_8);DelayNms(1000);gpio_bit_set(GPIOE, GPIO_PIN_6); DelayNms(1000);gpio_bit_reset(GPIOE, GPIO_PIN_6);DelayNms(1000);gpio_bit_set(GPIOF, GPIO_PIN_6); DelayNms(1000);gpio_bit_reset(GPIOF, GPIO_PIN_6);DelayNms(1000);}} LED.H #ifndef _LED_H_
#define _LED_H_
// led灯初始化
void LED_Init(void);
// 实现循环流水灯的功能
void LED_Cycle(void);#endif Delay.c #include stdint.h
#include gd32f30x.h/**
***********************************************************
* brief DWT初始化配置
* param
* return
***********************************************************
*/
void DelayInit(void)
{/* 关闭 TRC */CoreDebug-DEMCR ~CoreDebug_DEMCR_TRCENA_Msk;/* 打开 TRC */CoreDebug-DEMCR | CoreDebug_DEMCR_TRCENA_Msk;/* 关闭计数功能 */DWT-CTRL ~DWT_CTRL_CYCCNTENA_Msk;/* 打开计数功能 */DWT-CTRL | DWT_CTRL_CYCCNTENA_Msk;/* 计数清零 */DWT-CYCCNT 0;
}/**
***********************************************************
* brief 微秒级延时函数
* param nUs最大延时时间( 2^32 / 内核主频 ) * 10^6 us
* return
***********************************************************
*/
void DelayNus(uint32_t nUs)
{uint32_t tickStart DWT-CYCCNT;/* 转换为nUs对应的时钟跳动次数*/nUs * (rcu_clock_freq_get(CK_AHB) / 1000000);/* 延时等待 */while ((DWT-CYCCNT - tickStart) nUs);
}/**
***********************************************************
* brief 毫秒级延时函数
* param nMs延时时间n毫秒
* return
***********************************************************
*/
void DelayNms(uint32_t nMs)
{for (uint32_t i 0; i nMs; i){DelayNus(1000);}
} Delay.h #ifndef _DELAY_H_
#define _DELAY_H_
void DelayInit(void);
void DelayNus(uint32_t nUs);
void DelayNms(uint32_t nMs);
#endif main.c #include stdint.h
#include gd32f30x.h
#include Delay.h
#include LED.hint main(void)
{ DelayInit();LED_Init();LED_Cycle();while(1){} }