每个新板子几乎都是从LED流水灯开始的,就如同hello world一样,CH32V103也不例外,按照帖子https://bbs.21ic.com/icview-3037774-1-1.html?_dsign=949aa118的例子,开起来和STM32很像,建立LED源文件和头文件,复制帖子中的code,#ifndef __LED_H
#define __LED_H
#include "ch32v10x_conf.h"
void LED_Init(void); //初始化
#endif
#include "led.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义一个GPIO_InitTypeDef类型的结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能与LED相关的GPIO端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; //配置GPIO引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置GPIO模式为推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置GPIO口输出速度
GPIO_Init(GPIOA, &GPIO_InitStructure); //调用库函数,初始化GPIOA
GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1); //设置引脚输出高电平
}
int main(void)
{
u8 i=0;
u8 j=0;
Delay_Init(); //延时函数初始化
LED_Init(); //LED初始化
while(1)
{
Delay_Ms(250); //延时250ms
GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i==0) ? (i=Bit_SET):(i=Bit_RESET)); //设置PA0引脚状态为低电平
Delay_Ms(250); //延时250ms
GPIO_WriteBit(GPIOA, GPIO_Pin_1, (j==0) ? (j=Bit_SET):(j=Bit_RESET)); //设置PA1引脚状态为低电平
}
}
编译后,直接下载,这里注意下,板子上的LED并连线到对应的pin上,只留出了接口,需要通过杜邦线将LED和CPU的pin连接起来,这样就可以,这里连接PA0和PA1,就看见LED交替闪烁了。
code如下:
Hardware.zip
(3.73 KB)
|