[单片机芯片]

菜鸟学习功能强大CH32V307之GPIO LED点亮

[复制链接]
711|5
手机看帖
扫描二维码
随时随地手机跟帖
trucyw|  楼主 | 2023-4-4 20:31 | 显示全部楼层 |阅读模式
板子终于修好了,又可以和大家一起学习(吹水)了
今天就和大家一起来看下CH32V307的GPIO控制和Cortex 内核的GPIO是否有啥不一样
在这里就不再介绍开发环境的安装了,因为在这个社区已经有很多帖子在介绍,就不浪费大家时间了
接下来就开始今天的正题了
我们来看下官网下载下来的资料都有些啥(https://www.wch.cn/products/CH32V307.html)

资源还是很丰富,GPIO这个是我们今天的重点
找了好久才发现LED没有直接连接GPIO,所以我们就可以利用任意的IO都可以

打开project的界面和我们之前熟悉的keil差不多

今天我们就用GPIOA 的1和2来控制两颗LED灯珠
第一次下载程序我们可能会遇到以下提示

按照以下步骤操作就可以解决

接下来就可以直接下载了

下载完成就可以看到板子上的两个灯在交替闪烁
执行代码如下
void GPIO_Toggle_INIT(void)
{
    GPIO_InitTypeDef GPIO_InitStructure = {0};
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

int main(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    Delay_Init();
    USART_Printf_Init(115200);
    printf("SystemClk:%d
", SystemCoreClock);
    printf("GPIO Toggle TEST
");
    GPIO_Toggle_INIT();
    while(1)
    {
        GPIO_WriteBit(GPIOA, GPIO_Pin_1, 1);
        GPIO_WriteBit(GPIOA, GPIO_Pin_2, 0);
        Delay_Ms(1500);
        GPIO_WriteBit(GPIOA, GPIO_Pin_1, 0);
        GPIO_WriteBit(GPIOA, GPIO_Pin_2, 1);
        Delay_Ms(500);
    }
}

从这代码看GPIO操作和大家熟知的Cortex没有区别
今天到这里就告一段落了,后面将测试下PWM控制蜂鸣器
点灯视频 LED.zip (869.25 KB)

使用特权

评论回复
mikewalpole| | 2023-5-5 23:16 | 显示全部楼层
stm32和ch32用起来有差别吗

使用特权

评论回复
belindagraham| | 2023-5-6 00:09 | 显示全部楼层
可以直接mrs驱动操作的。              

使用特权

评论回复
trucyw|  楼主 | 2023-5-6 06:37 | 显示全部楼层
mikewalpole 发表于 2023-5-5 23:16
stm32和ch32用起来有差别吗

代码上看,差异不大

使用特权

评论回复
kkzz| | 2023-5-7 13:59 | 显示全部楼层
proteus支持CH32V307吗

使用特权

评论回复
yangxiaor520| | 2023-5-14 20:05 | 显示全部楼层
沁恒是死磕RISC-V啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

540

帖子

2

粉丝