CH32V307VCT6---工程template创建
一、硬件:沁恒官网申请的CH32V307VCT6开发板
二、开发环境:Mounriver
三、最终效果
1.PB9连接LED1,使其闪烁
2.OLED屏幕显示:软件IIC,PB10----SDA,PB11---SCL
3.工程链接:CH32V307VCT6 · lovefoolnotme/单片机 - 码云 - 开源中国https://gitee.com/lovefoolnotme/singlechip/tree/master/CH32V307VCT6
四、创建过程
1.建一个文件夹专门存CH32的过程
2.打开Mounriver,新建工程
工程名字,创建工程文件夹,裸机工程无os,选择自己的芯片
3.创建之后建立一个文件夹Harware存放一些驱动程序,Hardware里面创建一个oled文件夹,将oled的驱动放入这里面,然后再回到mounriver刷新一下,就会出现这个文件夹。
4.加入刚才加入的工程的路径,使用相对路径,注意要勾选"is a workplace path"
5.修改时钟频率
在system中将HSE选择为72MHZ,频率高于72MHZ,本例程的OLED屏幕将无法正常初始化。
6.主函数
/********************************** (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"
#include "oled.h"
/* Global typedef */
/* Global define */
/* Global Variable */
void LED_Init(void);
/*********************************************************************
* @fn main
*
* @brief Main program.
*
* @return none
*/
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
SystemCoreClockUpdate();
Delay_Init();
LED_Init(); //初始化LED
USART_Printf_Init(115200);
printf("SystemClk:%d\r\n",SystemCoreClock);
printf( "ChipID:%08x\r\n", DBGMCU_GetCHIPID() );
printf("This is printf example\r\n");
/*初始化oled*/
OLED_Init();
OLED_ColorTurn(0);//0正常显示,1 反色显示
OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
while(1)
{
OLED_ShowNum(0, 0, 6, 4, 16, 1);
OLED_ShowString(0, 20,"hello world", 16, 1);
OLED_Refresh();
GPIO_SetBits(GPIOB, GPIO_Pin_9);
Delay_Ms(500);
GPIO_ResetBits(GPIOB, GPIO_Pin_9);
Delay_Ms(500);
}
}
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure={0};
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能A端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PA0,1
}
7.Mounriver基础操作
(1)编译build,下载download,虫子图标debug调试
(2)修改语言
(3)在preference中修改主题和字体格式
(4)工程目录,Hardware是我们手动建立的(IDE会自动加入),其他的都是自动创建的
8.typec下载,接线注意
这块开发板板载了下载调试器,在发货过来时是没有完成跳线连接的,我们应当按如下方式正确连接才能typec下载。这样连接可以通过typec使用串口和下载功能。
五、实验现象
蓝灯闪烁,OLED屏幕显示0006和hello world,杜邦线是用于连接PB9和一个LED