stm32单片机心得体会

本文作者分享了从51单片机过渡到STM32的心得体会,强调了STM32的时钟树和地址映射的重要性。在实践中,作者认识到编程实质是操作寄存器,并体验了标准库和寄存器编程的优缺点。文章详细介绍了电源、电机驱动、超声波和舵机等模块的设计,同时提出通过深入学习C语言和掌握寄存器控制顺序来进一步提升技能。最后,作者提出了针对单片机选型的建议,推荐了STM32F1系列单片机,并列举了其优势。
摘要由CSDN通过智能技术生成

1.我复习了51,在这一阶段我加深了对中断的定时器的认识,通过控制大量外设,我意识到控制外设的难点在时序,信号很好给,什么时候给就是关键了。只不过这时我对编程实质的认识只是停留让IO端口输出上特定信号而已,所以这时我对中断的认识也仅停留在改变程序运行方向,对定时器的认识仅停留在代替软件延时达到更精准延时而已,不管内部外设怎么搞,外设也只能输出特定的三种信号,只是为了完成目的、简化并规范代码和尽可能让CPU更高效,需要特定的组合而已。这种理解没有不对的地方,只是不够深入。

2.我开始征战stm32,由于在学校已经做了一些准备工作,我很快便投入到攻克32这一难关上,刚开始那几天进度很快,我了解到了32的一些优势,以及它与51的不同之处,我认为最大的区别在32的时钟上,尽管32比51多了很多内部外设,而且就单看GPIO就知道32不是个善茬,但这些都不是关键,关键就在32的时钟树上。由于习惯了51的位操作,STM32的地址映射引起了我的格外关注,我也认定地址映射是另一个关键点,事实上我至今还没用到这个点,但我知道这只是我的深度没达到,总有一天地址映射会成为我的一个利器。随后数据就开始介绍内部寄存器了,也正是在这时我对编程实质的理解更进了一步,现在我认为编程的实质是操作寄存器,就像意识到指针是C语言的精髓一样,我感觉可以了。

3.于是我开始研究寄存器编程方式,意识到了这种操作的本质所在,也感受到了这种操作的不易,进而理解了标准库的必要,也能看懂标准库的编程方式与规范了

4.于是我转攻标准库,期间我意识到自己C语言功力不够,又从头到尾学了一遍C语言,待我学成归来,终于我可以看懂标准库的C语言操作了,也最终理解标准库编程的快捷之处,同时也意识到在某些方面标准库不如直接操控寄存器,从而意识到两种编程方式都要掌握,至此就差不多到了我现在的进度了,下一步我决定在研究更多的内部外设之前,再熟悉熟悉C语言高级部分,寄存器操作和库函数如何调用,我隐隐约约感觉到下一步的关键在控制寄存器的顺序上,先控制哪一个,再控制哪一个,只要知道这个顺序,其他的都好解决,比如会直接给寄存器写值、会调用库函数控制寄存器工作、知道该往寄存器放什么值等都是基本操作。

在继续新的征程之前,我做了一些计划:

1.熟悉C语言高级部分,寄存器操作和库函数如何调用

2.通过大量练习,找到寄存器的控制顺序,做好做个总结。

3.学会调用网络查找自己不懂的问题和想要的资料。不局限自己的思想,开眼看世界,多思考,着眼未来,找到突破点,推动时代变革。

在这一段时间里,我遇到了一些问题,产生了一些迷茫,不知道该怎么做了。看过的视频不想再看一遍,又解决不了眼前的问题。我于是又找了新的视频,而这一次,我又有新的收获。

在看别的视频时我又找到了一个文档,找到它时又让我想起了一句话,只要不断寻找,总能找到的,甚至还会遇到惊喜。这个文档不仅包含库函数中所有函数,连传什么值都说的很清楚,这样我编程辅助工具文件夹又多了一员大将,而且和之前的产生了奇妙的反应,之前解决不了的问题也变得迎刃而解。知道了函数的具体涵义,就更容易和寄存器联系在一起,更容易理解函数何时调用,也就不难掌握函数的调用顺序。这样在面对问题时,首先大事化小,确定硬件连接,分步完成,确定函数调用顺序,一个一个的调用就好啦!

处理器电路设计

单片机是系统的CPU,是系统稳定、正常运行的重要前提,以下为单片机选型的两种方案:
(1)传统的8位单片机,是通过超大规模集成电路对其进行集成为一个独立芯片的控制器。内部组件包括CPU、随机存储器、只读存储器、I/O接口、中断系统、计时器、串口通讯、数模转换等。STC89C52单片机是最常见的51单片机,但是资源较少,精确度低,处理速度相比STM32单片机差很多。

(2)使用目前市面上最常见的STM32单片机,STM32系列单片机可分为ARMCortex-M3内核体系结构的不同应用领域。它可分为STM32F1系列和STM32F4系列,STM32F1系列单片机时钟频率最高可达72米,在同一产品中性能最好。单片机的基本处理速度为36米,16位单片机的性能也很好。微晶片的内建快闪记忆体相当大,范围从32kb到512kb,可视需要选择。单个设备的功耗非常低,仅360mA,32位单片机产品的功耗最低,每兆赫只有0.5安培。特别值得一提的是,内接单晶片汇流排是一种Harvard架构,可执行速度高达1.25 DMIPS/MHz的指令。此芯片越来越多地被用作主要控制器。

通过对单片机的资源和处理时间的速度我们采用选择STM32103C8T6为本系统主控芯片,程序下载是只需要一个JLINK就可以轻松完成。控制器模块电路如下所示:

电源模块设计

本设计采用锂电池供电, 模块的供电电压一般都为5V&

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值