IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 第二周-GD32F4XX的配置和函数归纳(2) -> 正文阅读

[嵌入式]第二周-GD32F4XX的配置和函数归纳(2)

GD32F4XX的配置和函数归纳(2)

1.在keil上建立工程文件,调试设置,编译成功
2.总结编译调试烧录的过程
3.归纳软件程序的结构关系
4.下周继续通过实例来熟悉单片机的配置


1.编译、烧写情况

1.1 编译设置

1. 问题一

这里将遇到的问题总结出来,首先是出现这种情况
在这里插入图片描述
原因是程序运行目录有中文,需要将环境变量的TMP设置成自己创的一个英文目录
在这里插入图片描述

2.问题二

第二个问题是想要尝试用printf在keil中打印变量或字符串,但是失败了
查看手册后,发现编译环境调成该芯片,所以需要调用该芯片的通用同步异步收发器(USART)调用单片机的输出数据

1.2 .keil的设置

第三个问题就是配置问题,但是官网例程有个现有的工程已经设置好keil。可以直接链接、编译、生产**“hex.h”**文件
在这里插入图片描述

1.如遇创建新工程,需要先在keil的设备选项中加入该单片机型号
在这里插入图片描述
这个选项的GD32F4XX Devices不在keil的默认设备中,需要添加官网给出该类系列单片机设备的安装
在这里插入图片描述
2.要设置,可以生成**".hex"**文件,这个文件可以烧进单片机中进行运行
在这里插入图片描述
3.语言的预处理也要设置为该设备的环境
在这里插入图片描述
4.GD-LINK是将单片机与电脑连接,通过串口通信,但是这周一致没有连接成功,可能是单片机没有配电成功,需要下次尝试。
在这里插入图片描述
在这里插入图片描述

2.寄存器配置及函数表示

2.1 RCU(时钟和复位单元)

1.初始化RCU寄存器

void rcu_deinit(void)

2.打开/关闭某个外设的时钟,当睡眠状态下打开/关闭某外设的时钟

void rcu_periph_clock_enable(rcu_periph_enum periph)
void rcu_periph_clock_disable(rcu_periph_enum periph)
void rcu_periph_clock_sleep_enable(rcu_periph_sleep_enum periph)
void rcu_periph_clock_sleep_disable(rcu_periph_sleep_enum periph)

3.可以/不可以重启某个外设

void rcu_periph_reset_enable(rcu_periph_reset_enum periph_reset)
void rcu_periph_reset_disable(rcu_periph_reset_enum periph_reset)

3.实时时钟-备份寄存器的使能开关

void rcu_bkp_reset_enable(void)
void rcu_bkp_reset_disable(void)

4.选择/输出系统时钟的来源

void rcu_system_clock_source_config(uint32_t ck_sys)  //输入
uint32_t rcu_system_clock_source_get(void)  //输出

5.AHB/APB1/APB2的分频选择

void rcu_ahb_clock_config(uint32_t ck_ahb)
void rcu_apb1_clock_config(uint32_t ck_apb1)
void rcu_apb2_clock_config(uint32_t ck_apb2)

6.设置时钟输出的时钟源和分频选择

void rcu_ckout0_config(uint32_t ckout0_src, uint32_t ckout0_div)
void rcu_ckout1_config(uint32_t ckout1_src, uint32_t ckout1_div)

7.PLL时钟源的配置
PLL时钟源可选HXTAL或IRC16M;
PLL存在三个内部锁相环,PLL、PLLI2S和PLLSAI。
PLLP时钟可做为系统时钟(不超过200MHz),PLLQ时钟可以做为USBFS/USBHS/TRNG/SDIO模块的时钟源。
RTC时钟可以选择由LXTAL时钟、IRC32K时钟或HXTAL时钟的2-31(由RCU_CFG0寄存器的RTCDIV位域值决定)分频提供。

/* configure the PLL clock source selection and PLL multiply factor */
ErrStatus rcu_pll_config(uint32_t pll_src, uint32_t pll_psc, uint32_t pll_n, uint32_t pll_p, uint32_t pll_q);
/* configure the PLLI2S clock */
ErrStatus rcu_plli2s_config(uint32_t plli2s_n, uint32_t plli2s_r);
/* configure the PLLSAI clock */
ErrStatus rcu_pllsai_config(uint32_t pllsai_n, uint32_t pllsai_p, uint32_t pllsai_r);
/* configure the RTC clock source selection */
void rcu_rtc_clock_config(uint32_t rtc_clock_source);
/* cconfigure the frequency division of RTC clock when HXTAL was selected as its clock source */
void rcu_rtc_div_config(uint32_t rtc_div);

2.2 库文件的结构




就在我还继续一个函数一个函数看的时候,突然发现在这层寄存器配置是最底层,在这之上,也已经有了简化配置的函数可以直接调用。部分需要寄存器配置的可以在用到的时候找到头文件查看函数,提高效率。

在这里插入图片描述
还有一个补充库(大杂烩)
在这里插入图片描述
其中28个寄存器如下:
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:44:59  更:2022-03-15 22:47:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:30:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码