
蓝桥杯嵌入式组
《蓝桥杯之嵌入式组》专栏文章是博主2019年参加蓝桥杯的单片机组比赛所做的学习笔记,在当年的比赛中,博主是获得了省赛一等奖的成绩。成绩虽谈不上最好,但至少问心无愧。为了能更好地帮助到单片机初学者,今年特地抽出时间对当年的文章逻辑和结构进行重构,希望可以对正在学习的你有所帮助,感谢订阅!
ReCclay
优快云认证博客专家、优快云万粉博主、优快云嵌入式领域优质创作者、优快云-2020博客之星年度总评选Top25。自入站以来,凭借坚持与热爱,以博文的方式分享所学,累计博文数量达1千余篇,受益人次达300w+次,涉及领域包括但不限于前/后端软件开发、嵌入式软件开发、Linux驱动开发、自动驾驶算法研究、视觉SLAM算法研究、ROS机器人开发、FPGA开发、IC设计与验证等。欢迎您的关注,我们一起进步!
展开
-
【蓝桥杯嵌入式组】三、CT117E板载功能介绍
整体板子布局处理器STM32F103RBT6(和C8T6最主要区别在Flash大小上)72MHz Cortex-M3处理器128KB - Flash20KB - SRAM3个通用定时器(2/3/4)1个高级定时器(1)GPIO外设资源接口有一点需要注意,LED的8个输入端和LCD的高8位数据端是重合的,也就意味着操作LCD会影响LED!...原创 2019-01-22 17:13:03 · 1738 阅读 · 0 评论 -
【蓝桥杯嵌入式组】十三、定时器PWM模式
工程代码可见Github<传送门>1、主要代码main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年2月18日* 备 注:修改后的LCD例...原创 2019-02-18 16:23:54 · 789 阅读 · 0 评论 -
蓝桥嵌入式之 PWM波输出相关总结
互补PWM波只有高级定时器才可以做到~定时器硬件PWM模式的缺点 - 同一定时器中,不同的通道下,输出的频率固定,占空比可变。不同通道产生不同频率不同占空比的方波不同通道产生相位不同的方波PWM模式下同时可以几个通道输出呢?PWM模式main.c/********************************************************************...原创 2019-01-25 21:31:09 · 1454 阅读 · 3 评论 -
【蓝桥杯嵌入式组】四、考场快速测试板子(移植LCD例程解决不能下载的问题)
我们可以看到在官方提供的资料中有一个LCD的例程,但是直接下载到单片机是下载不进去的需要我们稍微更改一下,具体方法如下。一、复制两份工程到桌面嵌入式设计与开发项目加密资料\嵌入式设计与开发\液晶驱动参考例程中的CT117E-LCD文件。复制两份到桌面,分别起名为1和2,1-是原来的作为参考不要动,2是我们要进行更改的。二、删除2project中的东西三、新建工程对应到2的project...原创 2019-01-23 19:27:09 · 2325 阅读 · 1 评论 -
【蓝桥杯嵌入式组】十五、定时器的输入捕获模式(上)
工程可见Github<传送门>一、主要代码main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年2月19日* 备 注:修改后的LCD例程...原创 2019-02-19 08:27:33 · 2301 阅读 · 0 评论 -
蓝桥嵌入式之 简单USART通信实现LCD显示
工程可见GitHub<传送门>从数据手册可以知道STM32F103RBT6具有三个串口串口引脚及总线对应关系如下表所示:串口USART1USART2USART3管脚(TX/RX)PA9/PA10PA2/PA3PB10/PB11所在总线APB2APB1APB1三个串口都是一样的,但是较硬件电路操作而言,USART1和USART3都...原创 2019-01-25 17:25:20 · 1416 阅读 · 1 评论 -
蓝桥嵌入式之 2016_第七届_蓝桥杯_省赛_电压测量监控设备
工程可见Github<传送门>代码较多,这里只写出在书写过程中遇到的问题…一、关于串口①、串口发送函数写的有问题,之前写底层的时候也没注意到,今天万幸遇到了。注意,不要直接在上面进行index++,那样会导致第一个字符不能输出。②、LCD显示成乱码的深入之前为避免串口回车换行数据在LCD显示出乱码的形式,我进行了这样的操作RxdBuf[RxdCnt-1] = 0;,但是...原创 2019-02-25 14:27:57 · 1238 阅读 · 0 评论 -
【蓝桥杯嵌入式组】十一、RTC模块
工程可见Github<传送门>一、主要代码main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年2月18日* 备 注:修改后的LCD例程...原创 2019-02-18 10:29:36 · 953 阅读 · 3 评论 -
【蓝桥杯嵌入式组】十四、定时器输出比较模式
工程可见Github<传送门>一、主要代码main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年2月18日* 备 注:修改后的LCD例程...原创 2019-02-18 21:02:47 · 1246 阅读 · 0 评论 -
【蓝桥杯嵌入式组】九、E2PROM模块
工程可见Github<传送门>一、主要代码main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年2月17日* 备 注:修改后的LCD例程...原创 2019-02-17 18:40:57 · 1125 阅读 · 1 评论 -
蓝桥嵌入式之 2015_第六届_蓝桥杯_省赛_双通道方波 频率检测与倍频 输出
工程可见Github<传送门>代码较多,这里仅贴出写的过程中的问题。输入通道 PA1-TIM2_CH2 对应输出 PA6-TIM3_CH1输入通道 PA2-TIM2_CH3 对应输出 PA7_TIM3_CH2代码算是可以实现题目里面要求的功能,但是还有两个地方没弄明白。1、PWM输出的瑕疵原因待查找…2、串口的问题PA1 PA2作输入捕获,一旦有外部信号输入,在开...原创 2019-03-04 13:19:03 · 1552 阅读 · 5 评论 -
蓝桥嵌入式之 输入捕获(一)
工程代码可见Github<传送门>之前我们做的是PWM波的输出,现在再来看PWM的输入,即测量PWM波频率和占空比的测量。一、主要代码main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* ...原创 2019-01-26 19:12:16 · 1027 阅读 · 3 评论 -
蓝桥嵌入式之 实时时钟RTC
工程可见Github <传送门>一、RTC基础RTC 和 51中的外置芯片DS1302都是差不多的。1、RTC初识STM32内部有一块特殊区域,叫做备份区域,该区域包含了RTC核心模块和备份寄存器两部分。RTC 模块主要由 APB1 接口和一组可编程计数器组成(RTC 核心部件),如图所示。其中 APB1 接口部分(图中蓝色框内)用来实现 CPU 通过 APB1 总线和 R...原创 2019-01-26 21:31:00 · 972 阅读 · 0 评论 -
【蓝桥杯嵌入式组】六、LED模块
工程可见Github<传送门>一、主要代码main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年2月19日* 备 注:修改后的LCD例程...原创 2019-02-19 09:18:44 · 917 阅读 · 0 评论 -
【蓝桥杯嵌入式组】底层易错总结
底层代码参考建Gihub<传送门>模块模式LED普通推挽输出(GPIO_Mode_Out_PP)KEY浮空输入(GPIO_Mode_IN_FLOATING)BEEP普通推挽输出(GPIO_Mode_Out_PP)ADC模拟输入(GPIO_Mode_AIN)USART2_RX浮空输入(GPIO_Mode_IN_FLOATING)...原创 2019-11-23 17:55:27 · 1207 阅读 · 3 评论 -
蓝桥嵌入式之 ADC电压采集与显示
工程代码可见Github&amp;amp;amp;amp;lt;传送门&amp;amp;amp;amp;gt;一、ADC入门1、基础知识模数转换器(Analog To Digital Converter)简称 ADC(也可以写成 A/D),是指将连续变化的模拟信号转换为离散的数字信号的器件。 ADC 分为积分型、逐次逼近型、并行/串行比较型、Σ-Δ型等多种类型,STM32F103 自带的 ADC 属于逐次逼近型。逐次逼近型 ADC 与天平称物重非常相...原创 2019-01-27 12:07:31 · 1862 阅读 · 1 评论 -
蓝桥嵌入式之 LCD使用
工程可见github&amp;lt;传送门&amp;gt;比赛时关于LCD驱动文件都已经准备好,只需要会调用即可,这篇博文主要来熟悉下LCD的常用函数。复制考场文件夹中嵌入式设计与开发项目加密资料\嵌入式设计与开发\液晶驱动参考例程下的到自己的工程目录下。一、主要代码main.c/************************************************************...原创 2019-01-24 18:41:31 · 1605 阅读 · 0 评论 -
蓝桥嵌入式之 蜂鸣器
工程可见github&amp;amp;amp;amp;lt;传送门&amp;amp;amp;amp;gt;蜂鸣器接在了单片机的PB4,该口默认为JTAG功能,要想作为普通IO口,需要进行相应的设置,如何设置呢?可参考之前的一篇博文&amp;amp;amp;amp;lt;STM32之JTAG口作为普通IO使用&amp;amp;amp;amp;gt;。stm32复位后,PB4引脚默认是作为JTAG接口的RST引脚,因此我们再使用蜂鸣器之前要先原创 2019-01-24 18:07:00 · 1516 阅读 · 0 评论 -
蓝桥嵌入式之 2017_第八届_蓝桥杯_省赛_温湿度监控设备
工程可见Github&lt;传送门&gt;由于代码过长,这里就不再贴出代码了,只是记录下自己在做这个题遇到的问题吧。1、关于小灯又探索出了新的操作方法//LEDu16 LED_MODE = 0XFFFF;...LED_MODE |= (1&lt;&lt;9);GPIOC-&gt; ODR = LED_MODE;GPIOD-&gt; ODR |= (1&lt;&原创 2019-02-22 09:54:38 · 1247 阅读 · 2 评论 -
蓝桥嵌入式之 2018_第九届_蓝桥杯_省赛_电子定时器
工程可见Github&amp;amp;lt;传送门&amp;amp;gt;代码过长不再一一粘贴,这里记录一下再书写过程中遇到的问题。原创 2019-02-24 13:12:07 · 2059 阅读 · 2 评论 -
蓝桥嵌入式之 USB转串口(FT2232D/ATMEL528)
看CT117E的原理图中,关于USB转接口部分的电路并未详细标明芯片型号,不知道又有何蹊跷,今就来一探究竟…具体位置藏匿于LCD之下,掀开之后,便可窥得:两个芯片:FT2232D和ATMEL528...原创 2019-01-22 17:43:16 · 3353 阅读 · 0 评论 -
蓝桥嵌入式之 AT24C02
工程可见Github&amp;amp;lt;传送门&amp;amp;gt;关于24C02的基础知识,之前有过很详细的一篇文章,可参考&amp;amp;lt;这里&amp;amp;gt;,这里就不再赘述,直接上菜吧。用eeprom记录上电次数这样一个实例,来巩固下eeprom。一、主要代码main.c/*******************************************************************原创 2019-01-25 18:40:18 · 781 阅读 · 2 评论 -
【蓝桥杯嵌入式组】十二、USART模块
工程可见Github&amp;amp;amp;amp;amp;amp;lt;传送门&amp;amp;amp;amp;amp;amp;gt;一、主要代码main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年2月18日* 备 注:修改原创 2019-02-18 12:04:31 · 902 阅读 · 0 评论 -
【蓝桥杯嵌入式组】十六、定时器的输入捕获模式(下)
之前的博文中介绍了移植官方例程捕获频率的方法,今天在其基础上再来看看如何捕获对应的占空比.工程可见Github&amp;amp;lt;传送门&amp;amp;gt;原创 2019-02-23 10:43:19 · 1042 阅读 · 0 评论 -
蓝桥嵌入式之 2015_第六届_蓝桥杯_国赛_电压测量与互补 PWM 信号输出
工程可见Github&amp;amp;lt;传送门&amp;amp;gt;代码过多,这里不再一一粘贴,只挑重要的讲。1、互补PWM输出这个互补输出算的上是该题的一大亮点,PA9(TIM1_CH2)和PB14(TIM1_CH2N)是一对互补通道。互补PWM输出的配置类似PWM模式下的配置,但也有差别,这里贴出代码。#include &amp;quot;stm32f10x.h&amp;quot;/*sta参数表示是否初始化IO,en原创 2019-02-23 10:19:22 · 1004 阅读 · 4 评论 -
蓝桥嵌入式之 最后的挣扎
我们无法预料未来会怎样,我们能做的便是踏实的走好这个过程中的每一步,留待他日再回首,便可问心无愧。作为嵌入式,不管比赛结果如何,自己目的已经达到,触碰到了STM32的门槛。在这个过程中成功把悦悦带入坑里,哈哈,终于学会了自己摸索,第一个准成功的闭关弟子,我也甚是开心。<悦悦的博客地址,欢迎各位大佬关注>上一次单片机的蓝桥比赛结束后,我写道“可能会是最后一次”,很响亮的一记耳光,...原创 2019-03-23 20:09:21 · 1137 阅读 · 3 评论 -
蓝桥嵌入式之 按键控制LED闪烁
工程可见Github<传送门>一、主要代码main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年1月24日* 备 注:按键B1控制LED1...原创 2019-01-24 17:05:32 · 1731 阅读 · 0 评论 -
蓝桥嵌入式之 输入捕获(二)
繁琐的库函数调用,如果放在蓝桥比赛中记住我觉得不是个明智之举,那么有没有什么巧妙的方法呢?Of course!那就是固件库的例程移植!当然这并不是说就不需要去了解从零开始写的过程了,不然等出现了问题只能GG,所以务必在看完上一篇输入捕获并理解全部程序的基础上再来看这一片更符合比赛的。输入捕获对应路径为:..\STM32固件库v3.5\stm32f10x_stdperiph_lib\STM...原创 2019-02-01 21:25:34 · 648 阅读 · 0 评论 -
【蓝桥杯嵌入式组】五、TIM的定时中断
工程可见Github&amp;lt;传送门&amp;gt;一、主要代码main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年2月19日* 备 注:修改后的LCD例程...原创 2019-02-19 08:56:19 · 1064 阅读 · 0 评论 -
蓝桥嵌入式之 LED闪烁(延时)
工程可见Github&amp;amp;amp;lt;传送门&amp;amp;amp;gt;主要代码提取如下:main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年1月23日20:01:26* 备 注...原创 2019-01-23 20:18:20 · 1811 阅读 · 0 评论 -
【蓝桥杯嵌入式组】七、KEY模块
工程可见Github&amp;lt;传送门&amp;gt;一、主要代码main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年2月19日* 备 注:修改后的LCD例程...原创 2019-02-19 09:44:22 · 933 阅读 · 5 评论 -
【蓝桥杯嵌入式组】八、BEEP模块
工程可见Github&amp;amp;lt;传送门&amp;amp;gt;main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年2月19日* 备 注:修改后的LCD例程* ...原创 2019-02-19 10:04:51 · 785 阅读 · 0 评论 -
【蓝桥杯嵌入式组】战略部署(必看)
“一叶遮目,不见泰山”,不论是何事,对于事情的总体布局有个把控才能做到心中有数。STM32F103RBT6外设资源一览72MHz Cortex-M3处理器128KB - Flash,20KB - SRAMADCUSBRTC/Timer/SysTicksUSART/IIC/SPI(EEPROM)GPIO (LED/KEY/BUZZER/LCD)GPIO外设资源接口...原创 2019-01-22 14:53:28 · 6193 阅读 · 8 评论 -
【蓝桥杯嵌入式组】一、客观题(赛前必看)
1、STM32F103RBT6单片机具有(20)KByteRAM空间,(128)Kbyte Flash空间,(3)个USART,(2)个12位ADC。2、STM32 F 103 C 8 T 6 A中各个参数的含义F = 通用类型103 = 增强型101 = 基本型102 = USB基本型,USB 2.0全速设备105或107 = 互联型T = 36脚C = 48脚R = ...原创 2019-01-30 10:33:50 · 23620 阅读 · 31 评论 -
【蓝桥杯嵌入式组】二、备赛技巧及野生知识记录
一、备赛技巧二、意外获取的知识1、TIM2_CH1_ETR引脚想着找到TIM2的通道1对应引脚,却未单独找到TIM2_CH1,而是找到了TIM2_CH1_ETR其后的ETR这个是啥意思呢?顺着问题来到了STM32_MD系列数据手册,看到了答案如图。...原创 2019-02-01 17:57:47 · 1563 阅读 · 3 评论 -
蓝桥嵌入式之 通用定时器中断实现LED闪烁
工程可见Github&amp;amp;amp;lt;传送门&amp;amp;amp;gt;由前述博文《蓝桥嵌入式之 CT117E板载功能介绍》及《STM32F103RBT6》的DataSheet可知,STM32F103RBT6一共有七个定时器,包括1个高级定时器(16-bit),3个通用定时器(16-bit),2个看门狗定时器(16-bit)和1个滴答定时器(24-bit).本次将要介绍其中的通用定时器中断。当然前提还需要一个STM32的...原创 2019-01-24 15:19:55 · 1537 阅读 · 0 评论 -
【蓝桥杯嵌入式组】十、ADC模块
工程可见Github&amp;amp;amp;amp;amp;lt;传送门&amp;amp;amp;amp;amp;gt;一、主要代码main.c/******************************************************************************** 文件名:main.c* 描 述:* 作 者:CLAY* 版本号:v1.0.0* 日 期: 2019年2月17日* 备 注:修改后的LCD例程原创 2019-02-17 19:37:37 · 824 阅读 · 0 评论 -
【蓝桥杯嵌入式组】工程的建立(解决LCD移植中Unknown Device问题)
一、建立工程文件二、复制固件库中的CMSIS和驱动文件到Library可以从两个位置找,一个是..\STM32固件库v3.5\stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries另一个是..\液晶驱动参考例程\CT117E-LCD\Libraries三、将固件库中的程序源文件移至Source路径为:ST...原创 2019-01-22 22:49:13 · 2101 阅读 · 4 评论