基于CH32V208开发板点灯 - RISC-V MCU技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛
分享 收藏 返回

[文章]

基于CH32V208开发板点灯

有幸在活动中获得了一块CH32V208开发板,拿出来去去灰。点个灯玩玩。
CH32V208系列是沁恒微电子基于32位RISC-V设计的无线型微控制器,配备了硬件堆栈区、快速中断入口,在标准RISC-V基础上大大提高了中断响应速度。搭载V4C内核,加入内存保护单元,同时降低硬件除法周期。片上集成2Mbps低功耗蓝牙BLE 通讯模块、10M以太网MAC+PHY模块、USB2.0全速设备+主机/设备接口、CAN控制器等。

下面开始点灯准备。首先去沁恒微电子官网下载点资料。
https://www.wch.cn/products/CH32V208.html

CH32V208是RISC-V内核的,开发环境使用的是MounRiver Studio。打开MounRiver Studio,新建工程。
image.png
image.png

新建之后,就有了MCU工程模板了。初始模板工程已经初始化了串口打印信息了。可以直接编译成功。下面增加自己的代码实现点灯功能。

先初始化LED对应的IO。按照原理图将LED接到PA0和PA1引脚。初始化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_Pin_1;

    GPIO_InitStructure.GPIO_Mode =  *GPIO_Mode_Out_PP* ;

    GPIO_InitStructure.GPIO_Speed =  *GPIO_Speed_50MHz* ;

    GPIO_Init(GPIOA, &GPIO_InitStructure);

}

然后在main主循环中加入LED闪烁代码:

**int**  **main** ( **void** )

{

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

    Delay_Init();

    GPIO_INIT();

    USART_Printf_Init(115200);

     **printf** ("SystemClk:%d\r\n", SystemCoreClock);

 

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

 

     **while** (1)

    {

        GPIO_SetBits(GPIOA,GPIO_Pin_0 | GPIO_Pin_1);

         **printf** ("led on.\r\n");

        Delay_Ms(100);

        GPIO_ResetBits(GPIOA,GPIO_Pin_0 | GPIO_Pin_1);

         **printf** ("led off.\r\n");

        Delay_Ms(100);
    }

}

编译之后,无错误。
image.png

下载之后就可以看到LED灯闪烁了。
image.png

6.jpg

回帖(1)

申小林

2023-4-11 17:56:37
不错的板子谢谢分享。

更多回帖

×
发帖