沁恒CH32V307单片机入门(02):官方库与工程模板介绍
文章目录
- 目的
- 官方库
- 工程模板
- 使用例程
- 总结
目的
现在开发单片机大多数时候都是面向库开发的,这里将简单介绍下CH32V307的官方库。
在开发过程中新建项目时通常会从某些模板开始,模板包含了库和初始化代码等内容,有一定的组织好的目录结构,使用模板可以加速开发过程。这里也将介绍下使用MounRiverStudio进行开发时的模板内容。
一些基础的内容可以参考文章《沁恒CH32V307单片机入门(01):基础说明与流程体验》:
https://blog.csdn.net/Naisu_kun/article/details/128734532
官方库
在前面文章提到的 CH32V307评估板说明及参考应用例程 中 EXAM 目录下的 SRC 目录中就是官方库了。
Ld:链接脚本
链接脚本中主要就是一些符号定义和内存空间分配配置等。主要包括:程序入口定义、栈大小定义、FLASH和RAM位置与大小、内存中各个分段大小设置等。
Startup:启动文件
根据链接脚本定义的程序入口,系统启动后程序从这里开始运行。这里将数据在内存上进行初始化,然后设置堆栈,初始化中断和浮点,调用 SystemInit
函数初始化系统时钟,最后调用 main
函数。
目前有两个启动文件: startup_ch32v30x_D8.S
适用于CH32V303系列, startup_ch32v30x_D8C.S
适用于CH32V307-CH32V305系列,在 ch32v30x.h
文件中宏定义来选择相应的文件。
Core:内核系统头文件
这里主要用于中断控制器及相关功能。另外很多常用数据类型别名定义也在这里。
Peripheral:基本外设驱动源文件及头文件
这个目录下主要就是各种外设使用相关的库了:
ch32v30x.h
这个文件中定义了选择哪个启动文件、内外部时钟基准频率、外设用到的各种数据结构和宏定义等。
Debug:延时函数、串口调试源文件及头文件
这里包含了最常用的延时函数和打印输出功能。默认情况下通过UART1打印输出,可以修改头文件中宏定义来选择其它串口。
工程模板
这里将对NoneOS和FreeRTOS两种模板进行介绍。
NoneOS
ch32v30x_conf.h
:这个文件中引入了大部分的外设库文件,可以根据自己的需求调整;
ch32v30x_it.h/ch32v30x_it.c
:中断服务程序;
main.c
:主程序;
system_ch32v30x.h/system_ch32v30x.c
:系统时钟初始化,系统时钟调整可以在此处进行;
FreeRTOS
这个没有什么需要特别说明的,相比不带操作系统的新增了操作系统源码和配置代码。
使用例程
CH32V307评估板说明及参考应用例程 中 EXAM 目录下除了官方库源码外其余内容都是官方例程:
进入相应的例程,双击里面 .wvproj
格式文件就会启动IDE打开例程:
可以在和 EXAM 同级的 PUB 目录中找到《CH32V30x评估板说明书》,其中描述了例程打开、编译、下载、仿真等操作方法。
总结
沁恒CH32V307单片机官方的库和通过IDE建立的工程模板结构上还是比较清晰的,上手起来比较简单。更深入的使用方面的内容可以通过官方例程来学习。
沁恒CH32V307单片机入门(02):官方库与工程模板介绍相关推荐
- 沁恒CH32V307单片机入门(01):基础说明与流程体验
文章目录 目的 基础说明 芯片介绍 资料与工具 开发环境 流程体验 开发 调试 下载 总结 目的 工作这几年单片机主要就接触过 Atmel.Renesas.Microchip.ST 这些厂家的,最近几 ...
- Winbond W25Qxx SPI FLASH 使用示例(基于沁恒CH32V307单片机)
文章目录 目的 基础说明 使用示例 总结 目的 Winbond(华邦)的 W25Qxx 系列 SPI FLASH 是比较常用的芯片,这篇文章将演示单片机中通过SPI使用该芯片的操作过程. 本文使用沁恒 ...
- 沁恒CH32V307使用记录:使用TIM输出PWM信号
文章目录 目的 基础说明 使用例程 总结 目的 使用TIM输出PWM信号是单片机中比较常用的一个功能.这篇文章将对CH32V307中相关内容进行说明. 本文使用沁恒官方的开发板 (CH32V307-E ...
- 沁恒CH32V307使用记录:GPIO与EXTI
文章目录 目的 GPIO(通用输入输出接口) 基础说明 初始化 输出 输入与电平读取 锁定机制 EXTI(外部中断) 基础说明 使用演示 总结 目的 GPIO是单片机最基础的功能,EXTI最常用的场景 ...
- 沁恒CH32V307使用记录:SPI基础使用
文章目录 目的 基础说明 使用演示 其它补充 总结 目的 SPI是单片机中比较常用的一个功能.这篇文章将对CH32V307中相关内容进行说明. 本文使用沁恒官方的开发板 (CH32V307-EVT-R ...
- 沁恒CH32V307嵌入式比赛开发心得
开发版介绍 板载资源: CH32V307VCT6 ES8388 音频采集与播放 AP3216C 距离与环境光传感器 (ALS&PS) 128 Mbit 板载 Flash Type-C USB ...
- 1、新建基于标准固件库MDK5工程模板(STM32F103ZET6)
新建基于标准固件库MDK5工程模板 1.STM32官方库文件夹介绍 如上图,是ST官方提供的STM32标准固件库的文件包结构: STM32官方固件库下载地址: "https://www.st ...
- 沁恒微CH32V307开发板试用-RT-Thread+UART+LWIP+LED
CH32V307V-R0 是 南京沁恒微电子(WCH) 推出的一款基于 RISC-V 内核的开发板,最高主频为 120Mhz,该开发板芯片为 CH32V307-R0. 芯片资料:32位互联型RISC- ...
- [沁恒单片机系列]一、Keil中添加沁恒单片机型号
[沁恒单片机系列]一.Keil中添加沁恒单片机型号 1.前言 2.解决方法 1.前言 偶然了解到沁恒的CH552T带的USB单片机,价格非常美丽,性能也不错,主频高达24MHZ,官方提供的WCHSPT ...
最新文章
- 软件架构是软件的组织形式
- 线结构光平面标定矩阵变换算子
- Windows Vista Ultimate试用
- 最大质因子序列(信息学奥赛一本通-T1410)
- javascript+div实现鼠标划过,切换层效果
- 优秀的CSS布局大全
- 蔚来2018年平均每天亏掉2641万,车辆交付预期环比腰斩
- 男人30岁以前要作的事
- test Math
- oracle同时删除一行数据,oracle 多表删除 同时删除多表中关联数据
- C语言电影院售票系统
- java中的this是什么意思
- 有哪些文艺而有韵味的句子?
- SQL server查询试题
- 黑马程序员Node.js全套入门教程的学习笔记
- 小程序内配置公众号关注组件
- PS绘制扁平化风格相机镜头UI图标
- 阿维塔6000+交付量再创新高,持续聚焦“悦己”诉求
- 一款恋爱星座男女配对微信小程序源码
- CXF框架的一些问题
热门文章
- 水利部:去年土地出让金270亿投向农田水利
- 计算机音乐谱despacito,西语神曲:《Despacito 》附小提琴谱
- PhpStorm2020 + phpstudyV8 +XDebug
- 认识ODBC、OLEDB、ADO
- 南开大学计算机学院导师邢,南开大学计算机系导师--苏明
- 拿走不谢,孕妈想知道的都在这里了,关于分娩前见红
- 工作中遇到的小问题的记录
- Android毕业设计——基于Android+Eclipse的手机安全卫士设计与实现(毕业论文+程序源码)——手机安全卫士
- 用Unity做一个萌萌哒游戏(附资源)
- DFA算法实现敏感词过滤