欢迎光临散文网 会员登陆 & 注册

CH32F103C8T6GPIO操作函数(控制LED闪烁)

2023-01-16 11:47 作者:高_电平  | 我要投稿

#include "ch32f10x.h"


void gpio_init(void );

void LED_1(uint8_t a);

void LED_2(uint8_t a);

void delay_us(u16 time);

void delay_ms(u16 time);


int main()

{

gpio_init();

while(1)

{

LED_1(1);

LED_2(1);

delay_ms(500);

LED_1(0);

LED_2(0);

delay_ms(500);

}

}

void gpio_init(void )

{

    GPIO_InitTypeDef  GPIO_InitStructure;//定义结构体变量


    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE );//使能APB2时钟

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出模式

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度

    GPIO_Init( GPIOA, &GPIO_InitStructure );

}


void LED_1(uint8_t a)//a to be define 0(off) or 1(on) Using for LED1

{

if(a)GPIO_SetBits( GPIOA, GPIO_Pin_0);

else GPIO_ResetBits(GPIOA, GPIO_Pin_0);

}

void LED_2(uint8_t a)//a to be define 0(off) or 1(on) Using for LED2

{

if(a)GPIO_SetBits( GPIOA, GPIO_Pin_1);

else GPIO_ResetBits(GPIOA, GPIO_Pin_1);

}

//粗延时函数,微秒

void delay_us(u16 time)

{    

   u16 i=0;  

   while(time--)

   {

      i=10;  //自己定义

      while(i--) ;    

   }

}

//毫秒级的延时

void delay_ms(u16 time)

{    

   u16 i=0;  

   while(time--)

   {

      i=12000;  //自己定义

      while(i--) ;    

   }

}


CH32F103C8T6GPIO操作函数(控制LED闪烁)的评论 (共 条)

分享到微博请遵守国家法律