本帖最后由 Luciferkeji 于 2019-3-19 00:12 编辑
写在最前
那年,暑假刚比完 TI杯省赛。大三开学第一周照例来到实验室,老师每人发了一块开发板。“明年的国赛不限定MCU品牌,我们讨论决定用STM32,你们先熟悉一下”。看着手上这块有4个独立按键、4个LED蓝色的微雪出品的STM32F103开发板,。却没想到这块小小的开发板对我的大学生涯与工作有着如此深远的影响。。。
一,初识STM32
按照工程模版,创建keil工程,使用3.5版本的STD标准库配置时钟、设置外部晶振,计算好分频、配置好GPIO,终于点亮了第一个流水灯。不禁感叹,相比51和430的寄存器式编程,标准库方便好多啊。于是乎ADC采集,TIM定时器中断,PWM输出、定时捕获信号、外部中断、SPI、I2C通讯等一个个MCU外设功能逐渐熟练。其中也会遇到很多坑,比如使用标准库进行什么操作必须严格按照流程,经常出现一个某寄存器没读、某标志没清、某外设初始化有个地方没配置好,导致程序异常,这个时候编译器可不会给你报错,只能自己一个一个对着例程去找错误。
记得当时的库开发指南有一本厚厚的书,后来为了避免标准库配置出错导致程序异常,在标准库的基础上我们自己封装了一层函数,反正开发板引脚多(LQPF100封装),实际功能用不了那么多,于是限定某些IO只用于什么功能,实验室的人分工合作,每人负责几个外设的驱动,编写了一个大而全的工程。想用什么功能执行对应的初始化函数就行,虽然外设都是用的普通方式。不过后来事件中证明在只考虑功能实现和速度,不考虑成本的竞赛中,这样确实很简单高效,实在需要用到中断或者DMA再自己单独配置。
|