STM32学习小结

其实到今天,从茫茫然到知其然的过程颇为艰辛,算是知道点了门道但是在电子所的日子也进入了倒计时。

想想也总算从开始的躲避到现在的坦然接受,隐约中还有一丝喜欢。

人总要摆脱舒适,去适应一个陌生的环境。

当你坚持下来的时候,一切迷茫、纠结、奔溃都是值得的。

没有坚持博客是因为上次编辑了三遍,整整三遍,CSDN抽风,电脑抽风,每次都没保存就退出,我整个人都不好了。

在此推荐一下我的入门方法:

1.一块STM32板子;

2.《cortex m3权威指南》,《STM32中文参考手册》,《STM32库函数开发指南》

3.能上网的笔记本。

OK,刚开始可能什么都不懂,没关系,根据你买的板子附赠的例程,用Keil去编译,烧录程序,然后看看板子上的现象。

这是第一步,建立感性认识。

比如跑马灯,也就是两个灯交替闪烁,用到的资源就是LED。那么对硬件有了简单的认识之后,再去读代码,看看主函数都调用了什么东西,对于GPIO的配置,刚开始看或许什么都不理解,那就多看看,用本子把各个寄存器都记下来,然后对着代码里面对GPIO的配置一点点去标注,一遍没有印象,可以缓缓,Once again,直到你能清晰知道原理为止。

第二步,就拿上面三本书来说,去掌握STM32结构。

这么说可能很空洞,因为我也还没到那种程度。举个例子,比如上述GPIO的时钟,为什么要在APB2上进行使能,定时器TIM,可以干嘛,需要在APB1还是APB2上使能?端口复用和重映射是干嘛用的?为什么要用USB_232口烧录程序而不是USB_Slave口呢?两者有何不同,USB到底是什么?就类似于这样看似很小,但是又关乎整体的小东西,一点点去看。库函数开发指南会简单介绍一下,而详细的东西还得靠另外两本书。所以,多读书,还是有好处的。

第三步,“修改”代码。

比如按键输入,你要是一直按着,那么就会一直输入很多按键的值,111111111....。比如在生活中打电话,对于老人来说,可能没有年轻人这么敏捷的身手,那么打电话139,按照连续输入,就可能是1111113333333333399999,这样子很明显不是人们期望的。所以,问题来了,怎么样才能把按键长按时的连续输入变成只有一个输入了?其实实现起来很简单,只是在刚开始接触的时候可能会很难想到解决办法,比如我就想加延时,然而这样子只能减少输入的个数,而没有从根本解决。在此附上解决办法:

if(key1==0)
{
prinf("return data is %d \r\n",key1_pres);
while(key1==0);
}

也就是当你按下去的时候,在函数返回值之后加一个死循环while,那么不论你按多久,只要key==0,那么就只会出来一个返回值。越想就会越觉得语言的魅力还是挺有韵味的,博大精深。

再比如,利用RF芯片去收发,例程会告诉你简单收发,那么怎么样才能去收发自己想要要的东西呢?比如我想发四路PWM波,那么按照例程,首先是要把一路PWM波输出改成四路PWM波输出,然后再看看RF收发原理,把PWM通过RF发送,另外一个板子去接收。这么做下来,真的会受益匪浅。

第四步,多看多看多查多问。

当然,多问的话得看环境,要是没人接触那就还是多问问自己吧。不管是以上几本书还是在网上,都可以查到很多很多资料,多看看,多用用,总会解决问题的。如果还没有解决问题,只能说明看的还不够多。比如常接触的UART,USART,SPI,I2C,CAN这些通信方式,虽然都能传输数据,可是每一种方法都有他存在的价值,理清这些关系,在理解一个稍微复杂的系统时就会觉得并没有那么恶心。

在此,特别感谢中科院电子所徐玉宽老哥和王卫老哥,帮我解答了很多这方面的疑惑。

不知道为何,突然想到这句话:欲买桂花同载酒。

可能是马上要离开了吧,所以有点心情复杂。

万事唯在坚持,共勉!

                                                                                                                                        ---中科院电子所22室实习生,李

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值