蓝桥杯嵌入式比赛经验分享
比了两届蓝桥杯,最后以国二收场,也算心满意足!
一.我的蓝桥杯
我复习蓝桥杯,是1月份开始的,由于中间还要搞"毕业设计" "大学生创新创业作品展示""互联网+创新创业大赛""帮朋友做毕业设计 ""搞一些小项目赚钱""考掉计算机四级"……初赛复习时间40天左右,国赛复习时间7天(主要原因感觉国一没戏)。没时间复习的同学,不要太紧张!
二.教程
一家叫做"大科工作室"的淘宝店的资料不错,为了获奖钱还是要花的!
一般网上的蓝桥杯的教程,都带有防录屏的能力,在使用的时候会有很多不便。比如复制代码
三.我的程序
我写的第7届决赛的程序:链接:https://pan.baidu.com/s/1WU3doeiucjEMnyLQ5wH2lw 提取码:cm4f
在初赛前一个星期写的,为了满足5小时完成程序的要求,程序写的不怎么样!还望见谅。
四.比赛的时候,你有可能会遇到几个问题:
1.是边写程序边测试,还是写完程序再测试(我选择后者)
2.是自己建立工程,还是使用官方提供的例程工程(我选择后者)
3.比赛开始才写代码,还是先偷偷的写(我选择后者)
4.遇到解决不了的问题怎么办(千差万别)
(一)iic出错(单片机赛项)
(二)开发板损坏(有的时候损坏的很诡异,你是相信自己,还是相信开发板。一次机会哦!)
(三)电脑电源出问题,没有保存文件(在我同一考场有人有过)
(四)遇到自己没有预案的题型(比如第九届考的长按与短按)
(五)选择题太多不会的
(六)外设改变(如第九届AD按键,资料与实际上使用的电阻不同)
……解决好了省一等奖,解决不好省三等奖
五:经验
蓝桥杯嵌入式比赛提供STM32固件库3.5,如果玩STM32使用比如STM32CUBEMX需要一段时间适应,毕竟STM32固件库3.5已经是7,8年前的东西了!
在…/project/STM32F10X_StdPeriph_Examples下是ST官方提供的例程库,比赛时可直接复制里面的程序。
ctrl + c & ctrl + v在比赛的程序量里占70%左右吧!
六.学习"大科"写下的学习笔记
PWM大项
两路PWM |
||||
样式 |
输出 |
检测 |
||
不同频率/占空比 |
不同占空比 |
不同频率/占空比 |
不同频率 |
|
使用文件 |
OCInactive |
PWM_Output |
InputCapture |
InputCapture |
修改 |
||||
不足 |
管脚 |
定时器 |
通道 |
PA1 |
TIM2 |
CH2 |
PA2 |
TIM2 |
CH3 |
PA3 |
TIM2 |
CH4 |
PA4 |
ADC |
IN4 |
PA5 |
ADC |
IN5 |
PA6 |
TIM3 |
CH1 |
PA7 |
TIM3 |
CH2 |
AD大项 |
||||
AD按键 |
AD变位器 |
两路AD |
光敏电阻 |
|
使用文件 |
AnalogWatchdog |
AnalogWatchdog |
RegSimul_DualMode |
AnalogWatchdog |
修改 |
||||
通道 |
5 |
8 |
4/5 |
4 |
通道数 |
1 |
1 |
2 |
4? |
不足之处 |
||||
注意点 |
--0 100--1 400--2 800--3 1200--4 1600--5 2000--6 2400--7 3000--? 接PA5 第9届的比例不是这个了 |
接PA4/PA5 |
接PA4 |
|
读取格式 |
u16 Get_ADCs(u8 channel) { u16 ADC_Val = 0; ADC_RegularChannelConfig(ADC1, channel, 1, ADC_SampleTime_239Cycles5); ADC_SoftwareStartConvCmd(ADC1,ENABLE); while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); ADC_Val = ADC_GetConversionValue(ADC1); ADC_ClearFlag(ADC1, ADC_FLAG_EOC); ADC_SoftwareStartConvCmd(ADC1, DISABLE); return ADC_Val; } |
IIC大项 |
||
样式 |
AT24C02 |
三轴传感器 |
位置 |
0xA0/0xA1 |
0x38/0x39 |
不足 |
在于初始化写数据 LIS302DL_Write(CTRL_REG1,0x47); //DR=0,加速度的采集频率为 200Hz; //PD=1,LIS302DL工作在普通功耗模式; //FS=0,最大测量范围为 2g(2.3g),灵敏度为 18mg/LSB(16.2),受温度影响为 0.01%, 在0加速度时.飘移为 40mg; //STP=0,STM=0,表示 LIS302DL 工作在普通模式,即非自检模式; //Zen=1,表示使能 Z 轴方向加速度采集; //Yen=1,表示使能 Y 轴方向加速度采集; //Xen=1,表示使能 X 轴方向加速度采集; LIS302DL_Write(CTRL_REG2,0x00); //SIM=0,表示 SPI 口为 4 总线;(这个要先看cs决定) //BOOT=0,表示不要刷新存储器的内容,为普通模式; //FDS=0,表示禁用高通滤器; //HP_FF_W_U2=0, 禁用自由落体/唤醒高通滤波器 2; //HP_FF_W_U1=0, 禁用自由落体/唤醒高通滤波器 1; //HP_coeff2=0,HP_coeff1=0,DR=0, 表示自由落体/唤醒高通滤波器的输出截止频率为 2Hz; LIS302DL_Write(CTRL_REG3,0xC1); //IHL=1,表示在中断发生时,中断脚(INT1 和 INT2)输出低电平; //PP_OD=1,表示中断脚开漏输出; //I2CFG2=0,I2CFG1=0,I2CFG0=0,表示 INT2 脚输出低电平; //I1CFG2=0,I1CFG1=0,I1CFG0=1,表示 INT1 脚是根据自由落体/唤醒 1 寄存器的输出而发生变化; LIS302DL_Write(FF_WU_THS_1,0x28); //DCRM=0,表示在不再有中断发生时,持续时间计数器会被复位到初值; //THS0~THS6,用来设置自由落体/唤醒的下限值--720mg; LIS302DL_Write(FF_WU_DURATION_1,40); //当 DR=1 时,加速度的采集频率为 ; LIS302DL_Write(FF_WU_CFG_1,0x10); //AOI=1,表示所有中断事件相或后输出; //LIR=0,表示将中断请求不锁存; //ZHIE=0,表示在 Z 输出寄存器的值大于 Z 轴的设置值时,将不会使能 Z 轴中断; //ZLIE=1,表示在 Z 输出寄存器的值小于 Z 轴的设置值时,将不使能中断请求; //YHIE=0,表示在 Y 输出寄存器的值大于 Y 轴的设置值时,将不会使能 Y 轴中断; //YLIE=1,表示在 Y 输出寄存器的值小于 Y 轴的设置值时,将不会使能 Y 轴中断; //XHIE=1,表示在 X 输出寄存器的值大于 X 轴的设置值时,将不会使能 X 轴中断; //XLIE=0,表示在 X 输出寄存器的值小于 X 轴的设置值时,将不会使能 X 轴中断; |
其他
温度传感器 |
|
调用文件 |
官方文件ds18b20 |
注意点 |
ds18b20_read()后8位小数只要前3位 z = (ds18b20_read()& 0x07FF); x = z/16.; |
数码管 |
|
调用文件 |
|
注意点 |
|
温湿度传感器 |
|
调用文件 |
官方文件dht11 |
注意点 |
dht11_read();32位数据只要每个16位前8位 前8位湿度, 后8位温度 |
LED |
|
调用文件 |
IOToggle |
注意点 |
|
串口 |
|
调用文件 |
Interrupt/IrDA |
注意点 |
|
按键 |
|
调用文件 |
|
注意点 |
|
RTC |
|
调用文件 |
初始化:LSI_Calib 其他: Calendar |
注意点 |
|
蜂鸣器 |
|
调用文件 |
JTAG_Remap |
注意点 |
|
滤波算法 |
u16 Get_Filter(u8 channel) { u16 tmp; u8 i = 0,j = 0; for(i=0; i<ADC_BUFF_LEN; i++){ adc_buff[i] = Get_ADCs(channel); } for(i=0; i<=ADC_BUFF_LEN/2; i++){ for(j=0; j< ADC_BUFF_LEN-i-1; j++){ if(adc_buff[j+1] < adc_buff[j]){ tmp = adc_buff[j+1]; adc_buff[j+1] = adc_buff[j]; adc_buff[j] = tmp; } } } if(ADC_BUFF_LEN % 2 == 0){ return(adc_buff[ADC_BUFF_LEN/2-1] + adc_buff[ADC_BUFF_LEN/2])/2; }else{ return(adc_buff[ADC_BUFF_LEN/2]); } } |
希望诸位在蓝桥杯比赛中取得好成绩!
转载于:https://www.cnblogs.com/mtgy/p/10059305.html
蓝桥杯嵌入式比赛经验分享相关推荐
- 第九届蓝桥杯-嵌入式比赛体会与备赛经验
原文地址:http://www.cnblogs.com/NickQ/p/8721317.html 说起蓝桥杯,相信很多电子类的学生,应该很熟悉了吧...上周日,我也去湖北工业大学参与了一下.说起这次经 ...
- 蓝桥杯评分标准_新闻 | 人工智能学院创新创业实践中心开展蓝桥杯国赛经验分享会...
为让各位蓝桥杯国赛选手以饱满精力迎接接下来的比赛,天津科技大学人工智能学院创新创业实践中心邀请到计算机科学与技术专业教研室主任吴江红老师为各位蓝桥杯国赛选手分享经验,提高选手们的应试应赛能力. 吴江红 ...
- 蓝桥杯嵌入式比赛知识点合集(现在什么都有好吧)
目录 新建工程 LCD sprintf 格式 输出百分号 输出格式:%R memset函数 LCD_DisplayStringLine函数 嘀嗒定时器 高亮 行高亮 一两个字符高亮 单个字节高亮 使用 ...
- 蓝桥杯嵌入式比赛LCD屏如何高亮显示某一个字符
蓝桥杯嵌入式第九届赛题用到了高亮显示,主要由 void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);函数来完成,这个函数不再是一下子操作一行了,而是一 ...
- 蓝桥杯省一经验分享-2020
笔者第一次参加蓝桥杯获得省一,在此把经验分享一下.大佬请无视( ̄(工) ̄) 1. 什么是蓝桥杯? 全国软件专业人才设计与创业大赛,又名蓝桥杯大赛,是由工业和信息化部人才交流中心举办的年度赛事.其中,软 ...
- 蓝桥杯备赛经验分享---如何拿蓝桥国一?
好久没有正儿八经地写过博客了,今天分享一些自己学习算法的一些经验吧(虽然我很菜 !(OvO)!) step1: 1.你已经有一定的语言基础了,最好对C++/java语法比较熟悉: 2.可以较为熟练地使 ...
- 蓝桥杯嵌入式CT117E硬件开发平台总结 | 最后的分享
最后一篇关于蓝桥杯的经验分享,即是总结从开始准备蓝桥杯以来的点点滴滴经验,并汇总成了简单的脑图结构方便查看,本文开源了蓝桥杯个人做的所有代码,仅供参考(勿扰). 脑图汇总了最后准备国赛时根据库函数进行 ...
- 蓝桥杯嵌入式板-解决LCD使LED亮灭混乱的办法
比赛板用的是stm32f103RB芯片,64管脚,LED与LCD同用了管脚PC8~PC15(对应LED1~LED8),所以板子上增用了一个锁存器--M74HC573.在控制LED的时候,只需在输出对应 ...
- 第十三届蓝桥杯嵌入式备赛-STM32G431-基础模块调试①LED/LCD调试
目录 0.前言 时钟设置 项目设置 1.功能要求 电路原理图 2.STM32Cubemx初始化 3.程序实现 LCD LED 编写LED灯亮灭的相关函数 LED关闭函数 LEDx开启函数 LEDx关闭 ...
- 【蓝桥杯嵌入式主板G4】第三章 点亮一个LED
第一节 硬件解读 任何一个实验都是从点亮一个LED开始的,本次将教大家如何用stm32cubeMX+MDK在蓝桥杯嵌入式主板上面点亮一个LED. 先看蓝桥杯嵌入式主板的原理图:从图中可以看出一共有8个 ...
最新文章
- 趣谈 23 种设计模式(多图 + 代码)
- 数据结构线段树介绍与笔试算法题-LeetCode 307. Range Sum Query - Mutable--Java解法
- icem密度盒怎么设置_icem一些总结精编版
- Java EE6事件:JMS的轻量级替代品
- 设计模式---简单工厂设计模式
- 使用Docker搭建Consul集群
- 【Java】Int类型逻辑运算符的详细描述---含代码
- 用java提示用户输入学生个数_编写程序,提示用户输入一个数N,然后显示1~N的所有偶数平方值,求大神看看我写的程序哪里有问题。。...
- Docker网络一览
- 未能在sysindexes中找到数据库ID11中对象ID1的索引ID1对应的行,请对sysindexes运行
- netbean的安装及jdk安装和环境变量设置
- 西门子G120变频器介绍
- 计算机设备的工作原理,计算机工作原理
- 通过修改mateMask的nonce值修复replacement transaction underpriced的问题
- 【ChatGPT初体验与Android的集成使用】
- 马尔萨斯模型的分析和应用
- webpack4 教程 转载自陈三博客
- 第一章 日常生活中的正念
- DFIG matlab 建模,matlab怎么搭建dfig
- (40)Verilog实现序列10111【状态机三段式】