有幸在活动中获得了一块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,新建工程。
新建之后,就有了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);
}
}
编译之后,无错误。
下载之后就可以看到LED灯闪烁了。
|