赤菟开发板CH32V307VCT6学习2-GPIO

        拿到一块新的开发板,我们要做的第一件事,自然就是单片机入门—点灯。下面我就来记录下我用这块开发板的点灯操作。

        一、工程创建

        我们观察官方的例程,可以很明显看出,其与STM32是很类似的,学习过STM32的可以很容易上手,该工程中我们也可以看到启动文件和相关库函数,说明我们可以很容易编写相关程序。但库函数在哪,怎么添加,我还是一头雾水,因此,我们先来创一个工程试试水。然而我惊奇的发现,mounriver studio 这个软件非常的强大,就像将keil和cubmx结合一样。

(1)打开mounriver studio,点击新建,工程,出现如下界面

 (2)工程名任意,模板选CH32V307[RISC-V],型号CH32V307VCT6。

点击完成。

(3)我们点击旁边的项目资源管理器,展开项目树,点开USER文件夹,点击main.c,我们可以很惊喜的发现,你仅仅创建了一个工程,这个软件就帮你添加了启动文件、库函数、时钟配置等等,实在太贴心了。

二、代码编写

        观察官方例程后,发现其对于GPIO口的操作是很类似的,初始化结构体,调用相关库函数,使得GPIO口电平变化。

        本次我们选择PC13和PB10两个GPIO口进行电平操作。为了方便看到效果,我们利用板载的两个LED灯进行测试。

(1)看看原理图

        

 由此可以,灯需要接低电平引脚才可以点亮。

硬件接法:

J3的LED1和LED2使用杜邦线接到J4的PB10和PC13引脚。

(2)最终代码如下:

/********************************** (C) COPYRIGHT *******************************
* File Name          : main.c
* Author             : WCH
* Version            : V1.0.0
* Date               : 2021/06/06
* Description        : Main program body.
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for 
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/

/*
 *@Note
 USART Print debugging routine:
 USART1_Tx(PA9).
 This example demonstrates using USART1(PA9) as a print debug port output.

*/

#include "debug.h"


/* Global typedef */

/* Global define */

/* Global Variable */

void GPIO_Toggle_INIT(void)
{
    GPIO_InitTypeDef GPIO_InitStructure = {0};

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
    GPIO_Init(GPIOB, &GPIO_InitStructure);
    //GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
    //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    //GPIO_Init(GPIOB, &GPIO_InitStructure);
}
/*********************************************************************
 * @fn      main
 *
 * @brief   Main program.
 *
 * @return  none
 */
int main(void)
{
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	SystemCoreClockUpdate();
	Delay_Init();
	USART_Printf_Init(115200);	
	printf("SystemClk:%d\r\n",SystemCoreClock);
	printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );
	GPIO_Toggle_INIT();
	while(1)
    {
	    Delay_Ms(250);
	    GPIO_WriteBit(GPIOC, GPIO_Pin_13,SET );
	    GPIO_WriteBit(GPIOB, GPIO_Pin_10,RESET );
	    Delay_Ms(250);
	    GPIO_WriteBit(GPIOC, GPIO_Pin_13,RESET );
	    GPIO_WriteBit(GPIOB, GPIO_Pin_10,SET );
	}
}

(3)点击编译,观察是否还有错误。

三、程序下载
(1)编译完成后,其会生成hex文件。

(2)打开烧录WCHISPStudio,选择相关芯片。使用USB连接电脑与开发板,P6或P7都可。如下图所示,记住boot脚的操作,可以参见我上一篇:http://t.csdn.cn/OT2tE

 (3)点击解除代码保护,点击下载。

四、板子验证

欢迎大家尝试,有任何问题,请留言或私信。 

        

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sakura(划水)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值