当前位置: 首页 > article >正文

CH32V307VCT6---工程template创建

一、硬件:沁恒官网申请的CH32V307VCT6开发板

二、开发环境:Mounriver

三、最终效果

1.PB9连接LED1,使其闪烁

2.OLED屏幕显示:软件IIC,PB10----SDA,PB11---SCL

3.工程链接:CH32V307VCT6 · lovefoolnotme/单片机 - 码云 - 开源中国icon-default.png?t=O83Ahttps://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


http://www.kler.cn/a/452245.html

相关文章:

  • 瑞吉外卖项目学习笔记(九)套餐列表分页查询、新增套餐、图片上传和下载
  • Yolo11改策略:卷积改进|SAC,提升模型对小目标和遮挡目标的检测性能|即插即用
  • 在 Java 项目中集成和使用 dl4j 实现通过扫描图片识别快递单信息
  • HW护网分析研判思路,流量告警分析技巧
  • 网络安全攻防演练中的常见计策
  • 计算机基础知识复习12.24
  • uniapp微信小程序,使用fastadmin完成一个一键获取微信手机号的功能
  • arcface
  • Linux configfs和sysfs的使用与理解
  • 开关电源中的高频振荡噪声及其抑制方法
  • 117.【C语言】数据结构之排序(选择排序)
  • 青蛇人工智能学家
  • 2025差旅平台怎么选?一体化、全流程降本案例解析
  • 用 Python 从零开始构建 LLaMA 3
  • 网络管理(Network Management,NM)(一)
  • 【唐叔学算法】第19天:交换排序-冒泡排序与快速排序的深度解析及Java实现
  • 斐波那契数【东北大学oj数据结构10-1】C++
  • 大数据-259 离线数仓 - Griffin架构 修改配置 pom.xml sparkProperties 编译启动
  • Type-c接口
  • 将Minio设置为Django的默认Storage(django-storages)
  • 深度学习中常见的权重初始化方法
  • 关于 [MenuItem] Hierarchy 右键扩展多选问题
  • linux查看天气预报
  • Canvas指定三角形内部生成随机点
  • GoFrame框架介绍
  • 宏定义介绍