学51单片机对stm32有帮助吗,会51单片机,如何快速学习使用STM32单片机?

我是大学读的电子信息工程,最开始也是学习的51单片机,用51单片机做过几个小实验,毕业后,工作需要,做过半年AVR,然后又因为项目需要,就转到stm32单片机了,当时学习STM32是自学摸索,所以在学习STM32,我有自己的看法。

 

STM32的固件库,除了启动文件.S

学51单片机对stm32有帮助吗,会51单片机,如何快速学习使用STM32单片机?

文件,其他的底层,其实是使用寄存器地址,映射到相关的位置,然后使用结构体定义,用指针替代,最后形成对应的寄存器,比如GPIOE->ODR,固件库再以此进行操作寄存器操作,封装成函数,并将相同外设的多个函数放到相同的.c的文件中.

学51单片机对stm32有帮助吗,会51单片机,如何快速学习使用STM32单片机?

总结固件库用法,主要是对结构体的变量进行赋值,将赋值好的结构进行初始化函数运算.调用各类合适的函数.并在此基础上,完成自己需要的代码功能处理,

对于自学者来说,尤其是从51单片机转过来的自学者来说,习惯了51单片机操作寄存器配置,学习stm32固件库是比较不习惯和困难的,尤其是对于C语言的指针和结构体理解不够透彻的同学,更有难度。

学51单片机对stm32有帮助吗,会51单片机,如何快速学习使用STM32单片机?

 

所以我学stm32,最初是学习的stm32f1系列的寄存器。

 

前提条件是,需要stm32一块开发板,有jlink烧录器,搭建好能够开发stm32的keil的开发环境。能仿真操作。

 

1,学习IO端口的普通输入输出的操作

2,学习串口操作,串口数据的 输入输出,以方便有利于调试

3 学习ADC,进行模拟量采集,比如电池电量

4 学习SPI,

5 学习片上FLASH存储

6 学习以太网,

7 学习USB

8...

学无止境,要学的很多,我觉得学习STM32从0-1最难,找到办法后,后续的学习就是按部就班,费时间努力去学就可以了,

51单片机,stm32,arduino都是用什么语言进行编程的?

51单片机,STM32单片机用汇编或者C语言,现在基本都用C语言编程,Arduino有自己的编程环境,用户也是用C语言编程。

51单片机的编程

51单片机进入中国比较早,在早前用汇编编程比较多,我在上大学时也是学习的汇编编程,但是现在我用C语言编程,汇编已经不会了。51单片机比较常用的编程环境是Keil,现在Keil更新到Keil5了。如下是51单片机Keil的编程环境。

学51单片机对stm32有帮助吗,会51单片机,如何快速学习使用STM32单片机?

STM32单片机的编程

STM32单片机是意法半导体推出的高性价比、片上资源丰富的32位单片机,这个系列的单片机我一直在用,都是用C语言进行编程,官方推出的库函数和HAL库都是用C语言编程的,虽然有一部分汇编共存。STM32单片机用Keil MDK进行编程。

学51单片机对stm32有帮助吗,会51单片机,如何快速学习使用STM32单片机?

Arduino的编程

Arduino是一款做的非常成功的开源硬件,并且有自己的开发环境,将底层的寄存器设置都进行了封装,用户不用自己配置寄存器,调用封装好的函数即可,可以在官方网站下载编程IDE。Arduino旨在培养用户的编程兴趣,简化了技术难度,很受欢迎。

学51单片机对stm32有帮助吗,会51单片机,如何快速学习使用STM32单片机?

在用户层面,现在C语言编程已经是主流,C语言的移植性和可读性比汇编语言有很大的优势,也有很多人在使用汇编编程,尤其是涉及到底层时。

有什么学习嵌入式和单片机(stm32)的好方法吗?

第一,我们首先分析下基础条件:

自动化专业,本来就需要模拟电路和数字电路,也会开设单片机和C语言课程,对于单片机初学者来说,能够学好这几本课程,基本条件就具备了。因为单片机开发主要是这几门最重要。所以需要确认自己基础知识掌握扎实与否。

除此以外,英语最好有一定的读写能力,我们常常会查阅一些芯片资料,只有英文的datesheet,所以这点也要注意。

 

学51单片机对stm32有帮助吗,会51单片机,如何快速学习使用STM32单片机?

 

第二,先确定方向

我们常说的嵌入式可以分为linux开发,以及单片机开发,这两种开发的难度和学习的技术点会有较大差异。

linux开发,其实绝大部分都是基于linux软件开发,当然也分得很多职业,如驱动开发啊,运维等等。

再者,单片机开发又可以分为单片机软件开发和单片机硬件开发。掌握的专业技能和要求也各有差别;

 

学51单片机对stm32有帮助吗,会51单片机,如何快速学习使用STM32单片机?

 

单片机 硬件开发:主要工作内容是器件选型,设计电路原理图,绘制PCB图,焊接调试PCBA,工作的开展基本都需要用到万用表,示波器,可调电压等设备,对各种常见封装,如0603、0805,LQFP,TSSOP等封装器件,都能焊接。纯粹的硬件开发对于C语言接触的很少,除非是公司软件和硬件要一个人一起做。

主要是专业技能是:最主要是模拟电路和数字电路,二极管/三极管/MOS管/各种运放电路最基本的硬件知识要理解透彻,各种电工工具要掌握,掌握一个画图软件如Protel/dxp/AD/pads等等。

 

学51单片机对stm32有帮助吗,会51单片机,如何快速学习使用STM32单片机?

 

单片机软件开发:

单片机软件开发,主要是开发能在单片机硬件系统上正常工作的软件,一般主流都是使用C语言进行开发,所以C语言这门课程要学好,各种基本语法和常见的指针,结构体要熟练掌握,这是单片机软件开发最重要的基础。偶尔在调试BUG的时候,会需要借助下万用表和示波器,能掌握这些仪器的使用,有助于软件调试工作。

以上的这些都属于做开发的不同方向,但整体来说,linux软件开发难度比单片机软件开发难度要大,硬件开发则需要长时间经验积累,越大越吃香,一定要根据自己兴趣爱好,以及专业特长来考虑情况。

 

学51单片机对stm32有帮助吗,会51单片机,如何快速学习使用STM32单片机?

 

第三:如何学习最有效

女生学习能力其实很强,相对于男生,在理解和逻辑性上有可能会差一点,所以一定要理论知识和实践结合来处理。

对与单片机软件开发方向,建议先购买一套开发板,我觉得0基础的学员,最开始还是以51单片机作为入门课程。学习开发环境的搭建,仿真下载器的使用,熟悉单片机端口的输入与输出基本配置,定时器配置与使用,ADC采集,数码管使用,等等这些外设,在不断练习实践当中,巩固和学习好C语言。当然其中会遇到很多困难,自己一个人摸索,进度会很慢,所以建议找相关的培训机构或者老师,带着一起做项目,效率和进度会快很多很多。减少不必要的弯路。也有利于自信心的养成。

而STM32的开发比51开发在芯片构架和写法上有一定的差异,但只要对51单片机熟练掌握,那么学好STM32,就并不困难。

单片机开发其实是一项很考验学习能力和实践能力的职业和技能,只看书本是学不会单片机开发的,所以要做各种实验才有可能学会。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论