初学STM32的心得与建议
2019-07-24 13:33发布
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
不得不说STM32真的是一款非常复杂的单片机,一直以来接触的IIC.SPI.USART等等也只是用了一些常用基本的功能,今天在PWM上也花了不少时间,用库函数的话也是基本的函数调用初始化PWM。不过因为对定时器理解不是很深入,今天回过头去看定时器的内容,理解好定时器频率、重装值对溢出时间的影响是十分重要的。感觉学习还是手握一本相对详细的教材,单从视频例程和手册看来的知识比较片面。越是强大的功能就越是需要复杂的技术来配置它,刚解除stm32的时候我一直再抱怨连用个IO口都如此繁琐,其实我只是没有熟悉stm32的开发方式。不 是每一行代码都得你自己去写,能复制粘贴实现功能也是自己的本事。在学习stm32外设的时候应该注意一个很重要的事情,我们应该在用一个工程中通过添加.C和.h文件的形式来学习外设的使用,不可像学51那样一个工程一个实验。因为stm32功能众多我们做实验可能需要多个外设协同工作,做LCD现实实验可能我们需要LED现实状态,需要SPI连接传感器,需要key来控制状态。我们把在学习的过程中就大胆地把各个外设封装成文件,当我们完成所有外设学习的时候,这个工程就是我们的一个模板工程。需要做项目的时候直接COPY出来,去粗取精,稍作修改就能直接使用。如此看来stm32的发开也会变得十分方便快捷,估计以后接触更先进的芯片也应该采用这样的学习开发模式。毕竟芯片是越来越先进的,规模也是越来越复杂,只有在学习的时候就写好一个属于你自己的工程,日后做项目开发才能游刃有余。 对于学习stm32采用寄存器还是库函数,这个争议很多。个人认为两者并不冲突。首先库函数是st官方提供,整体来说它是一份优秀的代码。绝大部分情况下全部使用库函数来发开也能达到我们的目的。很多人说寄存器开发,代码效率很高,其实并不见得,我们打开官方库函数查看,会发现许多寄存器的配置都是写的十分棒的,初学者自己用寄存器写程序不见得会比库函数有力。那我们是不是就可以直接从库函数傻瓜式复杂粘贴代码来学习stm32呢?显然不是,寄存器可以帮助我们理解stm的硬件结构和工作方式,当库函数在某些情况不能实现我们想要的功能的时候我们可以通过查阅手册,用寄存器方式实现甚至改写官方库函数组成自己的库。要知道官方的东西不是绝对正确,也不是绝对适合自己的实际使用。在这情况下寄存器就有优势了。 作为初学者和日常开发来说,库函数的优势很明显,不仅代码可读性高,便于日后开发项目的再修改。试想我配置好的外设我在用的时候还需要查看手册,算一下寄存器的多少位要置1.多么蛋疼的事!所以根据目前的学习进度和经验,我认为,在学习最基本的GPIO的时候我们可以先从操作寄存器入手,了解好stm32寄存器如何操作,学习如何使用&、|等操作符来修改寄存器。当可以用寄存器使用GPIO的所有功能的时候我们就可以开始愉快的库函数之旅了。日后我们想修改其他外设库函数或者实现某些功能,查询手册里相关寄存器配置就好。每次学习外设可以先把该外设的相关寄存器浏览一下不用记住,可以往后学习库函数开发,日后需要用到寄存器的时候再看手册修改。 以上是作为一个初学者的一点心得体会,仅供参考,希望对阅读到的同学有所帮助。 创客学院官网:www.makeru.com.cn 嵌入式学习交流群:561213221
一周热门 更多>