请选择 进入手机版 | 继续访问电脑版

risc-v中文社区

 找回密码
 立即注册
查看: 6758|回复: 0

沁恒CH32V103C8T6点亮LED

[复制链接]

3

主题

3

帖子

39

积分

新手上路

Rank: 1

积分
39
发表于 2022-2-22 16:18:12 | 显示全部楼层 |阅读模式
流水灯逻辑图:
      初始化GPIO引脚--红绿蓝三灯同时亮--延时--亮红灯,灭蓝灯--延时--亮绿灯,灭红灯--延时--亮蓝灯,灭绿灯--延时
步骤:
      1.使能GPIOB端口时钟。
      2.配置LED引脚为推挽输出,最高输出频率为50MHz。
      3.设置GPIO引脚电平,低电平点亮LED灯,高电平熄灭LED灯。
在程序中新建bsp文件,然后在bsp文件夹下新建bsp_gpio.c文件和bsp_gpio.h文件。
配置bsp_gpio.c文件:

    #include "ch32v10x.h"
    //LED IO初始化
    void Bsp_Gpio_Init(void)
    {
       GPIO_InitTypeDef     GPIO_InitStructure;
       //使用PB端口时钟
       RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;//端口配置
       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO口速度
       GPIO_Init(GPIOB, &GPIO_InitStructure);//根据设定参数初始化GPIO

       GPIO_SetBits(GPIOB,GPIO_Pin_3);
       GPIO_SetBits(GPIOB,GPIO_Pin_4);
       GPIO_SetBits(GPIOB,GPIO_Pin_5);
     }

配置bsp_gpio.h文件:
  #ifndef _BSP_GPIO_H
  #define _BSP_GPIO_H

  #include "ch32v10x.h"

   void Bsp_Gpio_Init(void);
   #endif
在main.c文件中包含gpio.h文件。并写下流水灯代码:
int main(void)
{
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        Delay_Init();
        USART_Printf_Init(115200);
        Bsp_Gpio_Init();
        printf("SystemClk:%d\r\n",SystemCoreClock);

        printf("This is printf example\r\n");

        while(1)
        {
            GPIO_SetBits(GPIOB, GPIO_Pin_5);
            GPIO_ResetBits(GPIOB, GPIO_Pin_3);
            Delay_Ms(1000);

            GPIO_SetBits(GPIOB, GPIO_Pin_3);
            GPIO_ResetBits(GPIOB, GPIO_Pin_4);
            Delay_Ms(1000);

            GPIO_SetBits(GPIOB, GPIO_Pin_4);
            GPIO_ResetBits(GPIOB, GPIO_Pin_5);
            Delay_Ms(1000);

        }
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-3-29 20:10 , Processed in 0.018786 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表