初次学习stm32是在大二的下学期,那时在图书馆也借了好些书,网上也在找视频看,因为我只是买了个最小系统板,配套程序也少,也没买液晶屏,刚开始学起来有些吃力,应为只是stm32的一个工程就那么多文件,这在以前学习51以及Arduino时从来没见过的,用来一个多星期才弄明白一个模板工程的整体框架 ,当然了,最开始也是点个灯,按键开关,再加入中断。在学习的过程中,因为stm32经常要对寄存器配置,使用一个IO口都要配置一大堆,虽然我用的是比较容易理解的库函数方法,但依然可以感受到配置寄存器的重要性,并且在学定时器与中断的时候,突然感觉到以前学51是不懂的地方似乎全都明白了 ,51里的寄存器就那么几个,只是当时一直不是太理解寄存器是个什么东西。现在回过来看51的程序,感觉都好简单,真是学的多,知识面就广,感悟就多。 快放暑假的时候,系里一个刚来没多久的新老师兴致冲冲的要组织参加全国大学生电子设计竞赛,而且还买了好几套野火stm32开发板,拿着板载资源丰富的开发板以及配套的程序及教程,学起来真是如鱼得水,没几天就把又把stm32一些基本功能巩固了一遍,并且也了解了液晶屏的基本原理并熟练使用,暑假期间就留在学校里继续学习stm32并为竞赛做准备,这期间用stm32也做过一些小玩意,有液晶屏做的多级菜单,循迹小车,帆板控制等,还研究过匿名的stm32飞控程序,当然只是看懂了大致原理流程,四轴要想飞起来需要严谨看控制算法才能保证平稳飞行,不是简单的控制电机转起来就行了。 电子设计竞赛我们组选的题目是风力摆那题,方案是stm32通过读取MPU6050的角度数据,控制L298N电机驱动来控制四个轴流风机的转动,同时题目规定的各种要求借助液晶屏显示实现。虽然最终只取得了省赛三等奖,但对于初次用stm32编程比赛并在3天之内完成,已经很满意了 。
电设风力摆
之后就是继续学习stm32,因为喜欢小车,之前也做过循迹车,遥控车什么的,在网上见过有人做两轮自平衡车,于是就开始着手做起来,程序算法是借鉴网上的,主要就是PID算法以及编码器测速的使用,角度传感器MPU6050刚好用着比较顺手。应该是PID算法没有完全吃透,小车只能站立,碰它也不会到,只是如果遥控它前进后退就倒了
两轮自平衡车
|