【沁恒 CH32V208 开发板免费试用】+GPIO口及其使用 - RISC-V MCU技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛
分享 收藏 返回

[文章]

【沁恒 CH32V208 开发板免费试用】+GPIO口及其使用

要进行程序设计和测试,就离不开程序的下载功能。此次CH32V208所配置的外挂是调试器不如CH32V307所板载的调试器那样好使。

为了解决程序下载的问题,索性就抛开调试器直接用串口来下载,其线路连接如图1所示。
image.png

图1 下载线路

如何使用软件WCHISPTool来进行下载,在先按下复位键和下载键,如何再予以释放,下载前需先解除保护,在选取好下载的目标文件后,点击“下载”即可,详见图2所示。
image.png
图2 程序下载

  1. 点亮LED

在开发板上配有2个LED,其电路见图3所示,为了用PA0来控制LED1,在测试前需用导线将二者连接好。
image.png

图3 LED电路

配置PA0引脚为输出功能的配置函数为:

void GPIO_INIT(void)
{
    GPIO_InitTypeDef GPIO_InitStructure = {0};   
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

实现LED灯闪烁效果的主程序为:

int main(void)
{   
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    Delay_Init();
    GPIO_INIT();
    while(1)
    {
             Delay_Ms(250);
             GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);
             Delay_Ms(250);
             GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET);
    }
}

经下载测试,其符合设计要求。

  1. KEY控制LED

在开发板上还配有1个用户键,其电路见图4所示。为了用PA1来读取KEY的状态,需用导线将二者连接起来。
image.png

图4 LED电路

配置PA0为输出功能,PA1为输入功能的配置函数为:

void GPIO_INIT(void)
{
    GPIO_InitTypeDef GPIO_InitStructure = {0};   
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Mode =
GPIO_Mode_IPU;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

这里由于按键KEY并没有提供上拉电阻,故在配置时将其配置为上拉模式。

以KEY控制LED灯的主程序为:

int main(void)
{   
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    Delay_Init();   
    GPIO_INIT();
    while(1)
    {
        if(GPIO_ReadInputDataBit(GPIOA,
GPIO_Pin_1)==0)
        {
             GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET);
        }
        else {
             GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);
        }
    }
}

经程序的下载测试,其控制效果如图5所示,说明其符合设计要求。
image.png

图5 控制效果

这样就具备了程序设计的基本能力,也为后续的开发打下的坚实的基础。

更多回帖

×
发帖