自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 GD32实战21__编写一个OS

OS编写目的1. 让大家明白OS原理2. 编译原理及程序运行原理入门3. Cortex M3指令集等基础知识入门OS功能列表1. 任务切换任务创建函数 OS_TASK_CreateTask默认任务每10ms切换一次,可通过宏OS_TASK_SWITCH_INTERVAL配置最多支持OS_TASK_ID_MAX个任务,可修改宏达到配置最多任务数,实际任务数是OS_TASK_MAX...

2019-06-17 10:33:17 2088 2

原创 GD32实战20__Boot综合实验

知识点设计并实现一个boot,需要用到如下知识点,1. 体会boot的作用2. 新增闪存控制器学习3. 串口知识复习4. FLASH&SPI知识复习5. 状态机知识点复习6. 初识上位机软件7. xmodem通信协议学习8. 交互界面设计设计细节UI界面设计启动引导界面************************** Press Ctrl+...

2019-06-17 10:28:40 3321 1

原创 GD32实战19__看门狗

为什么需要看门狗​ 我们总是期望产品能够一直稳定运行从不宕机,但事实总是不尽人意,有各种预料不到的情况发生,宕机不可避免,退而求次,我们又希望万一发生宕机,系统能够自行检测并恢复。看门狗就是为了检测故障并恢复一种常见手段。​ 为什么叫看门狗呢?其实是一个很形象的称呼,就好像有只狗在看门一样,CPU需要固定时间喂一次食,不管CPU出于任何原因没有喂狗,狗就会叫,我们知道CPU肯定是出问题了。​...

2019-06-17 10:24:59 6278

原创 GD32实战18__低功耗

为什么需要低功耗​ 很多人都会陷入这样的误区,不用电池供电不需要低功耗。乍看之下似乎挺合理的,其实不然。低功耗并不是因为电源供电能力有限而做的不得已的选择,而是为了整个产品的长期稳定运作而做出的努力。​ 我认为,每个系统都应该考量低功耗的设计。实现低功耗​ 本文只从芯片角度阐述低功耗,外围电路不做探讨。​ 我们知道芯片本质上就是一堆门电路,每个门的开关都会伴随电流产生功耗,因此降低功耗最...

2019-06-17 10:23:04 7530 10

原创 GD32实战17__复位&电源控制

复位GD32的复位控制包括三种,电源复位、系统复位、备份域复位。电源复位通常将电源复位称作冷复位备份域除外的所有系统复位触发方式上电或掉电从待机模式中返回后由内部复位发生器触发复位地址固定在0x0000_0004系统复位SW-DP控制器和备份域除外复位处理器内核和外部IP部分触发方式有,如图上电复位(PORRESETn)外部硬件复位(NRST,Filt...

2019-06-14 10:52:20 6049

原创 GD32实战16__备份域

原理​ 备份域是只有一个目的,就是即使系统发生,该域也不会受影响,能够继续正常运行和保持数据不变。如图,为了达到该目的,备份域独立供电(图中1),独立时钟源(图中2),独立复位系统(图中3),独立的寄存器(图中4),还支持唤醒VDD域(图中5),同时提供APB通信接口(图中6)配置方法​ 其中,图中5会在下章(复位&电源控制&低功耗)说明,LSE、RTC和APB INTF1...

2019-06-14 10:49:51 2060

原创 GD32实战15__时钟树

时钟树​ 如上图,这就是时钟树,可以清晰的看到每个时钟分支是怎么走的,该如何配置,看该图时,可以遵循从右到左的顺序看,即先找到要配置的功能,然后在看该功能的时钟应该如何开启,例如RTC章节中的RTC时钟截图。​ 可以看出,系统的时钟源有4个,如下面截图,其中1和4是在芯片内部,2和3是在芯片外部的晶振。​ 时钟源经过分频或倍频后,最终得到108MHz(图中1)提供给AHB使用,AHB下面...

2019-06-14 10:48:00 2416

原创 GD32实战14__RTC

目的​ 虽然RTC简单,但是其牵扯的内容却蛮多的,例如时钟控制单元,电源控制,备份寄存器,最主要的目的还是想把下面3章引出来。原理​ RTC(Real_Time Clock)实时时钟,用于得到年、月、日、时、分、秒等时间日期信息。目前几乎已经是统一标准了,如图,32.768K经过15次分频后,恰好是1秒,其它时间只要在1秒频率下计数即可,RTC本质上就是一个1秒计数器。为了方便程序使用,内部...

2019-06-14 10:46:24 5819 3

原创 GD32实战13__PWM

原理1.与定时器章节共用代码2.PWM(Pulse Width Modulation脉宽调制)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。如下图,PWM输出的信号就是一串方波,PWM控制方波输出的频率和占空比(t1/t2)。​ 面积等效原理:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。​ 虽然PWM非常简单,但当其配合上面积等效原理后,作用就变...

2019-06-14 10:02:16 8482 5

原创 GD32实战12__定时器

引子1.与PWM章节共用代码2.生活中经常会用到下面几样,闹钟,到时间了给出提醒秒表(计时器),统计做一件事花费的时间原理如上图,定时器需要一个时钟输入,在每个时钟触发时,做如下操作1. 计数器做增加或减少的操作2. 跟目标值做比较,达到目标则触发中断,并重新把预置值设置到计数器中因此,实际配置中需要配置如下几步时钟源和分频系数等时钟参数预置值和目标值计数方式,增...

2019-06-14 09:51:15 11755 2

原创 GD32实战11__SPI & FLASH

知识点1. 理解SPI总线原理2. 强化按时序图编程3. 掌握FLASHSPI原理SPI(Serial Peripheral Interface)串行外设接口,是Motorola公司推出的一种同步串行接口技术。具体高速、全双工、同步的特点。总线本身并没有提供流控、应答确认和校验机制,需要特别注意。如图,SPI是主从型总线有且只有一个主设备,可以有1个或多个从设备SPI至...

2019-06-14 09:48:47 13394 3

原创 GD32实战10__I2C

知识点掌握I2C总线如何看时序图如何使用I2C接口的器件,例如AT24C02原理​ I2C/IIC(集成电路总线)是philips推出的一种串行总线。主要特性只有两根线,串行数据线SDA,串行时钟线SCL总线上的所有器件必须都有唯一的地址多主机总线,可同时支持多个slave和多个master,即支持冲突检测和仲裁8位双向数据传输,速率标准模式下最高100kbit/s,快速...

2019-06-14 09:42:59 10893 8

原创 GD32实战9__ADC

原理​ 我们知道自然界中很多量都是模拟量,而CPU只能识别数字量,为此,我们按一定的时间间隔对模拟量进行采样,并把采集到的值转换成数字量。​ 一般情况,ADC都要经过采样,保持,量化,编码四个过程。如何实现首先,我们看下如何实现一个简单的ADC,如下图,模拟信号从UI输入后,通过比较器与UREF(假设是+UREF=3.2V,-UREF=0V)进行比较,每当采样脉冲到来时,就完成一次转化...

2019-06-14 09:36:32 7575 3

原创 GD32实战8__DMA

引子​ 在前面的串口例子中,我们可以看如果要通过串口发送一个字符串,需要CPU把每个字符一个一个的发送出去,整个数据传输的过程都需要CPU的参与。可以想象如果传输的数据量较大,那么CPU大部分时间都忙于数据的传输了,然而,我们希望CPU能去做其他更重要的事情,那么数据的传输有没有更好的办法呢?​ 有,就是DMA(直接存储器访问)一个可以实现数据在存储器和外设或存储器和存储器之间直接传输,而不需...

2019-06-14 09:34:23 5640

原创 GD32实战7__中断

引子什么是中断​ 举个生活中的小栗子吧,我正在编写这个文档,突然门铃响了,我去开下门,原来是快递,签收完快递后,又回来接着写。​ 上面的例子中,1. 我就是CPU2. 编写文档,是主运行程序3. 门铃响了,是中断信号4. 查看到是快递,是查询中断号5. 签收快递,是中断处理程序6. 签收完快递后继续工作,是中断返回即,中断就是由于某些事件打断CPU主运行程序运行,并处理该事件...

2019-06-13 17:39:58 4727 8

原创 GD32F103实战笔记

背景​ 我相信国产芯片会越来越好,所以,芯片选择我都会采用国产芯片,例如本文芯片GD32F103。同时希望用这种方法能促进国产芯片的发展。​ 如果有国产芯片公司需要人为其编写驱动,丰富自己的例库,也可以发邮件([email protected])给我,我很愿意帮忙的。​ 对了,我写的所有文档和代码都可以随便转发,包括拿去牟利,只是希望能够把我的邮箱留下,方便有问题人可以联系到我,谢谢。​...

2019-06-13 17:35:03 21634 11

原创 GD32实战6__串口读写

目的​ 串口通信是非常非常常见的一种通信方式,必须掌握的。可以从如下几个方面掌握串口通信:串口通信原理,此处我们只研究异步串口GD32常见的几种串口通信配置异步串口通信原理1. 配置​ 在了解原理之前,我们先看看串口要如何使用,如下图,只要选择正确的串口号,把收发双方的波特率、校验位、数据位、停止位配置成一致,这么就可以实现双方通信。那么配置的这些参数分别代表什么意思呢?串口...

2019-06-13 17:32:21 14474 5

原创 GD32实战5__状态机

引子​ 上面的点灯例子中,如果想要实现如下功能,使用状态机可以把代码写的简洁通透。按一下全亮再按一下亮度降低50%再按一下跑马灯长按3秒熄灭状态机设计​ 我们把上面的功能在分解下,如下:按键检测,如图按下,低电平弹起,高电平按下时间长,可用作区分短按还是长按触发方式,高电平触发,低电平触发,下降沿触发,上升沿触发,根据经验,牵扯到时长判断,触发方式最好选择上升沿触...

2019-06-13 17:28:55 1601

原创 GD32实战4__调试模块

前言​ 记住,要实现一个功能前,应该先想好应该怎么调试该功能,并为其准备好完备的调试手段。​ 串口打印log信息是最常见的调试手段,下面我要实现该调试手段。​ 其中,串口的相关知识将在串口章节补充。功能设计功能要求如下:打印分类标签,包括trace, errror, debug打印文件名+行号打印关键提示信息和参数功能实现串口初始化static VOID UART1_...

2019-06-13 17:20:41 2795

原创 GD32实战3__点亮LED灯

知识点1. GPIO控制2. LED灯驱动原理3. 按键检查原理硬件部分如上图,LED灯负极接地,正极通过470欧电阻后,接到了MCU的引脚上。可以看出,当MCU的GPIO口输出高电平时LED亮,低电平时LED灭。如上图,​ 当按键弹起时,GPIO接在3.3V上,为高电平​ 当按键按下时,GPIO接到地上,为低电平注意:原理图中的K1,K2,K3分别对应板子上的K2...

2019-06-13 17:11:07 7754

原创 GD32实战2__如何创建一个Keil工程

创建一个工程,按图中标号操作按图并配置工程,并添加源文件按图添加头文件在main.c文件中增加如下代码int main(){ return 0;}点击编译,编译信息提示编译通过...

2019-06-13 17:06:30 10784 3

原创 GD32实战1__编程规范

目的​ 规范是经验的积累,需要慢慢用心去体会。规范1. 原则简洁明了,提高代码可读性,读的是代码而不是注释,注释永远都是辅助的。零告警,严谨的语法才能保障代码表达和编译器理解的是一至的。2. 排版缩进4空格,杜绝tab键程序块之间、变量声明之间,用空行分隔突出语法关键字一行不要太长,换行增加可读性3. 注释注释的目的是阐明意图目的,而不是翻译某行代码的动作注释的...

2019-06-13 17:01:10 6781 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除