计算机学院学子获蓝桥杯嵌入式设计与开发组国赛二等奖感想
感谢指导老师林瑾老师辛勤的指导,本次国赛在嵌入式设计与开发组全国排位51名,取得全国总决赛二等奖的成绩,本次成绩有点出乎意料。由于疫情的原因,比赛地点被迫改为本校软件工程系的软测实验室。
偷懒的本领全靠勤学苦练,优质的程序离不开迭代优化。备赛过程每天实验室,图书馆,宿舍,食堂四点一线,模拟测试的时候,为了完成赛程,甚至顾不上吃饭。感谢林瑾老师、胡雍言老师、巩如悦老师及郑丽佳老师对赛点的沟通、布置、安装及测试,及时为比赛提供必要的设备如电脑、示波器和万用表等,让我高效完成赛点训练。
6月4日国赛,当天进展顺利,完成所有熟悉掌握的赛点后,本打算放弃串口通信的赛点,直接国三够了,十一点半做完客观题显得没事,开始调串口,结果居然调通了!干脆不吃午饭,往下写代码,排序算法用的冒泡排序,没有失误,下午两点倒计时结束前1分30秒,检查任务设计书和程序流程,程序部分一个赛点没漏,这才放心吃午饭。
嵌入式组别考察STM32编程开发,难度略高单片机组。由于考研的原因,我没法和去年一样刷遍历届省题和国赛题!一个半月时间只刷完最近四年的国赛题。我使用STM32G431平台(新板)进行开发(今年年初意法半导体新推出的Cortex-M4系列)。编程采用LL库,更接近底层。
竞赛程序布局上,遵循冯诺依曼体系,先输入,运算(判断),然后再输出。I/O操作,尽量使用与或非和异或运算,传感器数据(ADC)使用了一个DMA通道进行传输。中断只有一个,留给串口,整套代码没有写满芯片内存,也没有卡顿,优化效果还算良好。
国赛考察内容分3个部分:片上资源,外部传感器,软件算法。
片上资源包括双通道ADC,双通道频率计以及双通道占空比检测。
传感器考察DS18B20温度计,一般要求温度显示精确小数点后2位;数码管和ADC按键相对简单,AT24C02存储芯片和DIS加速度传感器都是IIC协议,而可编程电阻暂时不考。
软件算法历年不考,顶多考察长按按键的定时器算法。但是今年省赛考字符串提取,国赛考冒泡排序和一道物理题大家是没法料到的,题目很简单,22年必然会有考算法赛点的趋势。但难度应该会有天花板,因为字符串提取整形和排序算法大多数学校的计算机专业和软件工程都会学到这门课—《数据结构与算法》,但电类专业未必,例如本课程在东软电子是选修课程。而交流群有一位光电工程的河北同学,就没有学过数据结构,因此现场盲打,但也能排对。
技巧总结:
①STM32嵌入式开发建议从库函数入手,结合英文例程和寄存器手册学习。
②不要在中断服务程序嵌套过多的回调函数。
③每写完一届赛题,去网上找别人的代码,查找对照别人和自己的优劣之处。
④良好的缩进和花括号,有助于构建框架清晰的程序
用户登录
还没有账号?
立即注册