概述
本评估板应用于CH32V103 芯片的开发,IDE 使用MounRiver 编译器,可选择使用板载或独立的
WCH-Link进行仿真和下载,并提供了芯片资源相关的应用参考示例及演示。
CH32V103R_NUCLEO硬件
1、CH32V103R8T6 5、复位按键 9、电源芯片 13、用户按键
2、SWD、串口 6、电源开关 10、下载接口 14、WCH-Link指示灯
3、LED灯 7、Type-C 11、WCH-Link Type-C
4、WCH-Link 8、USB座 12、单片机I/O
CH32V103R_NUCLEO资源
1.主控MCU :CH32V103R8T6
2.SWD&UART 接口 :用于下载、仿真调试,需跳线选择是否使用板载WCH-Link
3.LED :通过J3 插针连接主控MCU的IO口进行控制
4.WCH-Link MCU :实现WCH-Link 功能的MCU
5.按键 S1 :复位按键,用于外部手动复位主控MCU
6.开关 S3 :用于切断或连接外部5V 供电或USB供电
7.USB type-C接口P7 :连接主芯片USB通信接口
8.USB接口P6:连接主芯片USB通信接口
9.稳压芯片U1 :用于实现将5V 电压转成芯片可用的3.3V 电源电压
10.Download 接口J1 :当J1跳线短接时,可用于实现WCH-Link固件更新
11.WCH-Link 接口 :用于连接PC 和WCH-Link功能模块
12.MCU I/O 口 : 主控MCU 的I/O 引出接口
13.USER 按键S2 :通过J3 插针连接主控 MCU的IO口进行按键控制
14.WCH-Link 指示灯:包括D1、D2和D3三个LED灯,指示WCH-Link运行状态
原理图
功能要求
根据原理图,通过PA0点亮LED灯,使LED周期闪烁。
程序代码
CH32V103的使用基本与STM32标准库相同,这里就不再详细说明相关数据结构。
初始化GPIO
void GPIO_Toggle_INIT(void)
{GPIO_InitTypeDef GPIO_InitStructure;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初始化函数,并在while(1)中使PA0电平翻转。
int main(void)
{u8 i=0;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);Delay_Init();USART_Printf_Init(115200);printf("SystemClk:%d\r\n",SystemCoreClock);printf("GPIO Toggle TEST\r\n");GPIO_Toggle_INIT();while(1){Delay_Ms(250);GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i==0) ? (i=Bit_SET):(i=Bit_RESET));printf("GPIO Toggle TEST\r\n");}
}
对端口翻转,个人比较喜欢使用异或操作。
int main(void)
{u8 i=0;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);Delay_Init();USART_Printf_Init(115200);printf("SystemClk:%d\r\n",SystemCoreClock);printf("GPIO Toggle TEST\r\n");GPIO_Toggle_INIT();while(1){Delay_Ms(250);GPIOA->OUTDR ^= GPIO_Pin_0;printf("GPIO Toggle TEST\r\n");}
}
硬件连接
用杜邦线将,PA0脚与LED1脚连接在一起。下载程序并运行。