前言:
为推动软件和电子信息技术产业的发展,促进电子和软件专业技术人才的培养,向软件和电子信息技术行业输送具有创新能力和实践能力的高端人才,提升高校毕业生的就业竞争力,全面推动行业发展及人才培养进程,自2009年起,工业和信息化部人才交流中心已连续成功举办四届“全国电子专业人才设计与技能大赛”以及“全国软件专业人才设计与创业大赛”,大赛的举办得到了教育部、工业和信息化部有关领导的高度重视及相关司局的大力支持,也得到了各省教育厅和各有关院校的积极响应,更得到了参赛师生的广泛好评。四年来,两个大赛参赛学校超过1100余所,参赛总人数累计已超过了8万人。
为了更好地组织大赛和更好地服务参赛师生,自2014年第五届大赛开始,“全国软件专业人才设计与创业大赛”和“全国电子专业人才设计与技能大赛”统一合并为“全国软件和信息技术专业人才大赛”。大赛由教育部高校学生司担任指导单位,工业和信息化部人才交流中心担任主办单位。
第五届大赛个人赛分电子类和软件类两大类别,其中电子类包括嵌入式设计与开发、单片机设计与开发、电子设计与开发三个专业,软件类包括C/C++程序设计、Java软件开发两个专业。
——出自蓝桥杯官网http://www.lanqiao.org/index.action
今年是第五届蓝桥杯大赛了,我个人在老师的怂恿下,稀里糊涂的就报了蓝桥杯,还记得是2013年11月8号报的名字,好像截止报名时间也是11月8号吧;于是,我就稀里糊涂的准备,没有板子怎么办?瞎看呗,反正到11月24号基本什么都没干,11月24号晚上接到创新创业中心老师打来的电话,让我过去那板子。当时那个兴奋啊!就早早的跑过去,老师正在开会,在门口守了好像3个钟头。
回到实验室,打开一看,就一个裸露的开发板和一根白色的数据线!郁闷!!!说明书都木有!资料都木有!要知道,我这可是第一次接触stm32啊!脑子里出现了好多“?”&“!”,赶紧打电话给创新创业中心的潘老师,还好老师说有资料,忘记给我了,说第二天早上给我。我那个不情愿啊,心想:为什么现在不给?瞎搞!!!
没办法,自己就拿了个小螺丝刀把板子拆了!看看都有什么芯片。
MCU:stm32f103rbt6,8M的晶振,FT2232下载芯片,MAX3232串口通信,SD卡槽,74HC573D锁存器,AT24C02 EEPROM,还有4个按键,8个LED灯,外加一块显示屏,估计是3.2寸的吧!外设基本都玩过,就那个stm32f103rbt6没见过,不过之前玩过arm(fl2440)了,stm32是cortex-M3系列的,心想估计架构差不多吧!就随随便便找点资料看看,找一些群加进去!
终于等到第二天了,老师在上网9点多的时候准时发来Email!要知道我可在实验室等了2个小时了。然后即开始一点一点的玩,从LED-->Button-->Interrupt-->USART-->I2C-->LCD-->ADC-->DAC-->TIMER-->PWM OUT-->PWM INPUT-->EEPROM 花了10天左右,把这些外设玩了一个遍,而且完全没有用库函数!因为我当初不知道还有库这东西,在好像第十一天,无意看到群里面有人说什么库,然后又听蓝桥杯嵌入式交流群里面说提供库,可是12月8号要开始比赛了!还有3天时间怎么办???当时就什么都没想,问一哥们要了一个stm32f10x_stdperiph_lib版本的库。已经连着加班十多天了,不是几个月了,因为之前在准备挑战杯(国赛),然后又强忍着,加班了3天!经常不吃中午饭,让实验室的哥们给稍点饼充充饥!
终于,12月8号比赛了,自己骑个自行车去华科文华学院比赛(这个自行车陪我从武汉跑到恩施,700多公里),看到题目,还好都不难,提前一个小时做完出来了,我又想说一句:怎么才十几个人在比赛?是不是这个比赛是瞎搞的?后来才知道嵌入式是今年才出的!只有那个软件设计大赛才是最有挑战性的!郁闷!!!!2013年的最后一天成绩出来了,第一,进入决赛了。当时老师又找到我,嘿嘿,陈振威要不要参加软件类的?当时想想手头上还有两个项目,犹豫了半天!好吧,参加吧!
。。。。。(此次省略10000字)
板子分析:
1、MCU -- stm32f103rbt6
stm32f103rbt6是64PIN的,查看外设比较少,GPIO有PA0~PA15,PB0~PB15,PC0~PC15,PD0~PD2(PD口在做映射的时候要注意下,有点管脚没有);还有实时时钟(RTC)没有LSE路晶振驱动,大家可以看板子,就一个8M的晶振,那是驱动MCU的;硬件I2C,网上传说做的不好,但是对我们的应一般没有影响!所以不必要惊慌,用就是了!USART在比赛的时候他会跟USB下载程序的端口共用,并且用到PA3口,所以大家在用PA1~PA8的时候要有所考虑!TIM1,TIM8这些高级定时器咱们这个板子上没有,不用考虑!
2、板子外设
FT2232下载芯片,MAX3232串口通信,SD卡槽,74HC573D锁存器,AT24C02 EEPROM,还有4个按键,8个LED灯
(1)8个LED+74HC573D是一起用的,只要记住输出想要输出的电平,然后再给74HC573D锁存引脚LE一个脉冲即可;http://blog.csdn.net/ieczw/article/details/15446847
(2)Button建议用中断;http://blog.csdn.net/ieczw/article/details/15816257http://blog.csdn.net/ieczw/article/details/17053921
(3)IIC;http://blog.csdn.net/ieczw/article/details/17040803
(4)AT24C02 EEPROM;http://blog.csdn.net/ieczw/article/details/16812151
(5)MAX3232串口通信;http://blog.csdn.net/ieczw/article/details/17001585
(6)实时时钟RTC;http://blog.csdn.net/ieczw/article/details/16903813
(7)DAC;http://blog.csdn.net/ieczw/article/details/16925929
(8)ADC;http://blog.csdn.net/ieczw/article/details/16869465
(9)DMA;http://blog.csdn.net/ieczw/article/details/16921559
(10)TIMx定时器;http://blog.csdn.net/ieczw/article/details/17188865http://blog.csdn.net/ieczw/article/details/17220451
(11)LCD;可以从库里面移植,我们写过博客,可以自己尝试下!
3、PA1~PA7分析
为什么要特别分析这几个呢?你外这几个是插针,有人可能看到这句话立马就笑了!呵呵,是这样的,出题人想要让我们做的话,无非是从几个PIN输入或输出的!其他都是直接做在板子上的,我相信大家也玩的特别熟了!把这几个PIN能干嘛给搞清楚就没有什么难的了!
PA1 : USART2_RTS/ADC_IN1/TIM2_CH2
PA2 : USART2_TX/ADC_IN2/TIM2_CH3
PA3 : USART2_RX/ADC_IN3/TIM2_CH4
PA4 : SPI1_NSS/USART2_CK/ADC_IN4
PA5 : SPI1_SCK/ADC_IN5
PA6 : SPI1_MISO/ADC_IN6/TIM3_CH1
PA7 : SPI1_MOSI/ADC_IN7/TIM3_CH2
由此可见,我们只要处理好通用定时器TIMx,USART2,ADC即可,至于SPI总线,我觉得不会弄,因为他需要另给外设模块,我估计组委会不会那么富裕!
<1>TIMx 只要把我上面提到的两篇博客看完,你就没有什么不会的了!定时,PWM输入,输出都是小case!
<2>ADC 模数转换,大家也可以直接找到库里面的examples进行移植!
总之,有库在手,没有什么问题能难倒大家!所以建议大家把ST提供的库好好研究研究!
结语:
2014年来了,祝大家学习工作顺利!另外请各位多多指点!
联系方式: E-mail: [email protected]
蓝桥杯嵌入式交流群:147520657