蓝桥杯
文章平均质量分 76
碎冰,
佛系小白,随缘更新。
展开
-
【蓝桥杯嵌入式备赛】学习目录
蓝桥杯嵌入式备赛系列汇总【蓝桥杯嵌入式备赛】1.新建工程及常见问题解决【蓝桥杯嵌入式备赛】2.快速编写LED驱动及闪烁不受控制问题解决(流水灯的一种思路)【蓝桥杯嵌入式备赛】3.按键的简单实现和长短按方案(阻塞和非阻塞式)【蓝桥杯嵌入式备赛】4.RTC驱动快速编写以及单行部分高亮显示【蓝桥杯嵌入式备赛】5.ADC驱动快速编写(一路和两路)和问题总结【蓝桥杯嵌入式备赛】6.一路/两路占空比可调PWM(输出模式)和两路占空比频率可调PWM(输出比较)驱动快速编写【蓝桥杯嵌入式备赛】7.一路PWM输原创 2021-05-29 17:43:44 · 2670 阅读 · 0 评论 -
【蓝桥杯嵌入式备赛】9.串口驱动快速编写及常见问题解决
引子其实楼主蓝桥杯报名之前接触32也有段时间,串口和上文的E2PROM了解或接触过,应用也不少但是因为做小项目不像蓝桥杯需要自己写收发函数等,这方面例程也很多都是拿来直接用。所以准备的过程中也是发现这两块有点陌生也有点怵,不过依然没有花很多时间准备因为感觉不会考很深。(结果就翻车了),十二届省赛就考了串口。不过还好前一天晚上问了问班里大佬,突击了下考场上还是基本实现了。CT117E用的是串口2串口驱动快速编写引脚 TXD->PA2 RXD->PA3全双工工作模式发送引脚推挽复用,接原创 2021-05-29 17:21:42 · 1220 阅读 · 0 评论 -
【蓝桥杯嵌入式备赛】8.E2PROM快速编写功能拓展及问题解决(整型和浮点数读写)
引子E2PROM作为掉电存储的最佳方式,在第九届的省赛的电子时钟中出现了。刚开始准备时发现i2c时序已经难度了,后面发现不同数据类型进行读写也有难度。花时间研究了下发现理解以后还是可以接受的。CT117E这块板子上用的是AT24C02这块芯片E2PROM基本读写赛点的资源包提供了i2c的驱动文件,所以其实驱动这块直接调用它的函数就可以啦。驱动写起来也很简单,不过没这个必要,自己写函数即可。复制到自己工程文件夹并在keil里添加即可提供的函数这里的基本读写是无符号短整型即一字节数据(u8/原创 2021-05-29 16:41:21 · 1295 阅读 · 0 评论 -
【蓝桥杯嵌入式备赛】11.拓展板之DHT11和DS18B20
引子拓展板除了比较多路方便的PWM和ADC,还有几个传感器。比如温度传感器DS18B20和温湿度传感器DHT11。好像往年赛点都提供(听说第十届需要自己写),直接初始化以后调用函数就可以。复制到自己的工程下在工程内也添加即可。DS18B20跳线帽:P3的TDQ连接P4的对应引脚如果只是想把这个模块用起来其实初始化结束以后调用即可。如下:float temp_f; ds18b20_init_x();while(1){ while(1) { temp_f = ds18b20_rea原创 2021-05-26 20:59:08 · 1373 阅读 · 2 评论 -
【蓝桥杯嵌入式备赛】10.拓展板数码管、ADC按键及光敏电阻
引子进入国赛以后,拓展板也是比较重要的一部分。上面的有些东西也是第一次接触,所以借这个机会把学习的过程记录下来,帮助大家排雷。拓展板上资源大致分为:数码管、ADC按键、光敏电阻、温度传感器、温湿度传感器、三轴加速度传感器以及两路占空比可调PWM、两路频率可调PWM(用于输入捕获)和两路ADC输入。看起来很多,其实PWM和模拟信号输出部分不需要编程硬件就实现了,捕获和ADC利用之前的知识就可以。按键和光敏电阻也是基于ADC部分的原理稍作修改,这样算下来其实任务就简化了,学起来也轻松多了。数码管拓展原创 2021-05-26 15:47:19 · 1729 阅读 · 1 评论 -
【蓝桥杯嵌入式备赛】7.一路PWM输入捕获和两路输入捕获驱动快速编写及常见问题
引子输入捕获在国赛还是挺容易考的。一般要求一路的话直接就直接用标准库的PWM输入捕获例程了,可以把它看成一种特殊的输入捕获。两路的话就需要使用输入捕获在例程的基础上修改一下(标准库例程只能计算一路频率),不过思路是一样的。一般捕获都需要搭配扩展板,使用信号发生器或者用另一块板子输出PWM也是一样的。说明标准库关于这两种输入捕获都没有添加定时器分频部分说明,例程是都是捕获频率小于1K的信号。就出现了两个问题,一是不分频捕获高一点频率的信号容易出现错误(因为不分频的话基频高于检测信号很容易漏检出错)。另原创 2021-05-25 09:45:41 · 1190 阅读 · 1 评论 -
【蓝桥杯嵌入式备赛】6.一路/两路占空比可调PWM(输出模式)和两路占空比频率可调PWM(输出比较)驱动快速编写
引子PWM算是除了按键、LED和LCD这些必考模块以外最重要的部分了,基本每次题目都会或多或少的要求输出或捕获PWM。这里大致分为四种 :1、一路或两路特定频率特定占空比或占空比可调PWM(PWM输出即可)2、同一定时器输出两路频率不同或单独可调,占空比恒定或可调(PWM输出比较)3、一路PWM捕获(PWM捕获即可)4、两路PWM捕获(输入捕获)这篇只介绍前两种情况1代码简单,不需要添加中断服务函数在库函数基础上不怎么需要修改情况2也能实现情况1但是要复杂些输出比较原理推荐https:原创 2021-05-24 19:43:26 · 1287 阅读 · 4 评论 -
【蓝桥杯嵌入式】关于CT117E下载程序出问题解决方案(含keil mdk4和keil mdk5移植)
废话万事开头难,然后中间难,最后难。寒假刚开始,我看到了蓝桥杯嵌入式。很快啊!报名、买板一气呵成。没想到这块CT117E板子它不讲武德,来骗,来偷袭我这个二十岁的小伙子。之前的stm32基础是跟着原子哥搭配Jlink用的,当时配置环境感觉也没多困难,配置好以后就爽到飞起。板子到之前已经跟着视频开始复习各模块,配置环境不是麻烦,内容理解起来也很顺利。直到板子到了以后着实恶心了自己一把。(板子刚到上电以后发现电源灯都不亮,我能吃亏吗?感觉找商家后来发现是开关没开丢人丢大了)配置环境工具大多数使用32的原创 2021-01-17 18:37:44 · 8115 阅读 · 66 评论 -
【STM32】关于PWM输入捕获占空比显示误差和低频显示出错的解决及经验总结
问题描述为了备赛蓝桥杯,开始更深入的接触PWM的各个模式(之前只使用过PWM1和PWM2的输出模式)。在比赛提供的官方固件库的基础上进行修改,暂且用了两块板子,板子A烧录的之前写的输出比较输出两路频率和占空比可变的PWM作为信号发生源供烧入捕获的板子B检测。 板子A一路是1Khz作为基频的频率可调,另一路是10Khz作为基频的占空比可调的PWM(只有四个按键,就一路一个功能了)。官方例程基本不需要改动就可用,但是板子B检测到的的基频1Khz的PWM频率显示数值异常,但是频率加上去以后就正常。而且两路PW原创 2021-04-09 17:51:01 · 5075 阅读 · 14 评论 -
【蓝桥杯嵌入式备赛】5.ADC驱动快速编写(一路和两路)和问题总结
引子ADC算是整块板子比较重要的部分了,在往年的题目经常出现(虽然我参加的十二届省赛没考)。经常会和其他部分结合考察。主板上的ADC对应PB0引脚(ADC1的通道8)两路ADC需要用到扩展板驱动编写参考固件库STM32F10x_StdPeriph_Examples\ADC\ADC1_DMA main.c复制其中的IO配置、时钟配置和ADC配置即可,DMA不需要获取ADC数据这里需要注意获取的流程: 使能开启软件转换 -> 等待软件转换结束标志位置1 -> 读取数据返回原创 2021-05-21 20:06:51 · 670 阅读 · 0 评论 -
【蓝桥杯嵌入式备赛】4.RTC驱动快速编写以及单行部分高亮显示
引子RTC好像考的并不多,而且RTC也可以用滴答定时器实现。不过RTC既然是专门定时的外设,还是学了一下不怎么难。驱动编写参考例程STM32F10x_StdPeriph_Examples\RTC\LSI_Calib main.c复制RTC_Configuration(void)和NVIC_Configuration(void)RTC_Configuration(void)去掉最后两行,添加初始化设定函数RTC_SetCounter(uint32_t CounterValue)中断服务函数S原创 2021-05-19 20:13:24 · 672 阅读 · 0 评论 -
【蓝桥杯嵌入式备赛】3.按键的简单实现和长短按方案(阻塞和非阻塞式)
引子按键作为整块开发板几乎最重要的输入方式,个人感觉还是相当重要的。按键无法实现或者崩溃,很大程度会导致整个程序无法调试和演示效果。大多数年的赛题要求的只要能够正确检测按键触发而且不会出现抖动基本就足够了,但是第九届也是考到了长按和短按。这里提供几种方案供参考。驱动编写和上篇的LED驱动类似,只需注意修改GPIO引脚和模式即可原理图上按键是上拉输入,所以IO模式相应修改即可(好像改成浮空也可以)void KEY_Init(void){ GPIO_InitTypeDef GPIO_InitSt原创 2021-05-19 17:22:59 · 1231 阅读 · 2 评论 -
【蓝桥杯嵌入式备赛】2.快速编写LED驱动及闪烁不受控制问题解决(流水灯的一种思路)
第一个例程参考STM32固件库代码V3.5版\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\GPIO\IOToggleLED点亮蓝桥杯板子LED和LCD的引脚共用,所以为了解决冲突加入了一个锁存器,所以只有LE引脚即D2拉高才能更改LED寄存器的值。所以需要操作时候要 先拉高D2再操作最后拉低D2锁存。LED闪烁不受控制这是由于LED引脚和LCD共用引起的,LCD在操作过程中会引起LED寄存器值更改,原创 2021-05-18 17:23:47 · 1562 阅读 · 1 评论 -
【蓝桥杯嵌入式备赛】1.新建工程及常见问题解决
通过这个系列记录一下蓝桥杯嵌入式赛前的准备工作,同时总结遇到的一些问题希望能帮到有需要的人。关于新建工程的必要关于是否需要新建工程的问题,博主觉得看个人情况吧。赛场提供的赛点资源包确实有液晶例程可以直接拿来用,确实简单但是弊端也挺明显的。一是自己建工程会对文件存放位置更清楚,后期提交文件不会不知道提交哪些。二是由于大部分人使用keil4有时会出现例程打开卡死(因为keil4并不能兼容用keil5打开的工程),代码停在最后一行查看函数都费劲(后面会提到解决方法)。博主刚经历的省赛同赛点不少人以为电脑问题频原创 2021-05-18 16:55:27 · 1215 阅读 · 0 评论