大家好,今天小编关注到一个比较有意思的话题,就是关于零基础学stm32要多久的问题,于是小编就整理了2个相关介绍零基础学stm32要多久的解答,让我们一起看看吧。
学习嵌入式开发的过程难吗?
从我自身的经历来看,学习嵌入式入门容易,但是精通比较难,主要的难点在如下几点:
1)芯片层面。芯片的硬件资源,gpio、时钟、复位等,搞清楚还是挺容易的,但是芯片内部的架构、各ip的选择、性能指标的确定,这些不是短时间内能掌握的,需要长时间的打磨才有可能。成本、功耗、性能如何做到均衡,对于一个好的嵌入式芯片来说至关重要,而这需要对芯片设计和产品应用均有长时间的理解才行。总的来说,嵌入式芯片的使用入门容易,但是好的芯片设计较难。
2)硬件层面。嵌入式系统的硬件设计一般都易入门,它的难点在于如何设计一个可靠的电路,如何控制成本功耗。不同水平的硬件工程师设计出来的电路差别很大的。
3)软件层面。编写一段嵌入式代码容易,但是如何用有限的资源完成高性能的任务,这个是难点。毕竟嵌入式系统可用的资源都是有限的,flash、RAM的大小受限,主频受限,等等。习惯了PC编程的,肯定无法理解嵌入式软件设计中的斤斤计较。
刚开始是比较难的,但是一旦摸到门路后,就会学得很开心、进步很快。一般来说,学习嵌入式一般是以下过程:数模电-->51单片机-->STM32单片机-->QT/RTOS-->Linux。每一个阶段都有难的,但都是前一个阶段积累来的,慢慢来的话,也不会太难,坚持并相信自己就好,有需要就学,热爱就学!加油吧!
如果你从来没接触过,学习的过程还是挺难的,但是如果你有软件和硬件基础,再加上毅力和恒心,也能够由入门到精通的。下面根据我自己的一些经验给你一个学习的路线和方法:
1.狠抓基础
首先拿出大学里的C语言、数据结构、计算机基础、高等数学、数字模拟技术和数字电子技术 这些书来学习软件基础和硬件基础。
看到这些书有没似曾相识的感觉,仿佛回到大学时代!
C语言:
这个不用说了,软件入门的开始,把每课代码例子手动敲一遍,不是为了敲代码而敲代码,而是熟悉编程方法和编程思想。
数据结构:
数据结构一定要学好,这个关系以后你的代码 是“土鳖”编写的还是"土豪"编写的;
这个关系到以后你的代码 大小是10k还是100k,还关系到你能否往更高领域公司百度阿里物联网云计算、自动驾驶、智能机器人方向发展。
高等代数:
高等数学主要是学习逻辑思维能力,对你以后编程逻辑以后Bug的查找解决关系很大。
模拟电子技术基础和数字电子技术基础:
这个是学习模拟电路和数字电路的基础,这个是设计电路的基础。对你后面开发电子产品起着很重要的作用。
2.勤于实践
有了上面的基础之后,我们可以开始边实践边学习了:
2.1 初级篇
首先从单片机开始比如51单片机或AVR单片机、或STM32单片机开始,我个人对STM32单片机还是情有独钟的。可以上淘宝买一套STM32单片机开发板,选择那种案例和项目比较多的套餐。然后按照开发板的实验开发指南完成每一个例子,基础上就可以入门了。除此之外,还要在网上多找一些项目来做,比如循迹小车项目、温湿度无线监控项目、四轴飞行器项目,先从模仿开始。
2.2 中级篇
开始学习嵌入式操作系统。从比较流行和商业用比较多的μC/OS-II和FreeRTOS开始学起,熟悉嵌入式操作系统的基本概念原理、嵌入式系统移植和裁剪、嵌入式图形界面编程。
2.3 高级篇
学习更高级别Linux操作系统,熟悉Linux shell命令、Linux应用编程和Linux驱动开发,有条件可以在搞一套Android开发板学习Linux底层的驱动开发。自己也可以在网上找找需求订单,自己设计电路和开发产品。
2.4 高高级篇
本人才疏学浅,自己也在学习研究和探索中,欢迎大牛来指点。
总结
只要有兴趣和恒心,勤于练习和实践,随时调整方法和思维,我们都是可以实现自己的目标的!
会51单片机,如何快速学习使用STM32单片机?
如果想要“快速”
1.得有一个开发板,推荐正点原子,硬石科技,或者野火的(基本是例程+教程+视频+开发环境+各种实用工具,正点原子还有相关社区论坛)
2.stm32型号很多,入门推荐学习stm32f103系列
3.stm32也有很多开发方式,标准固件库,或者HAL库。推荐HAL库+cubemx自动化生成,可以快速入门,降低学习难度增强学习信心
不建议学stm32,官方的固件库和集成开发环境影响开发者的认知,不能完全了解它是如何运行如何编译等等。学习arm裸板你会知道cpu的运行机制以及它程序的编译、运行过程,对学习操作系统有很大的助力。
谢谢邀请,我是大学读的电子信息工程,最开始也是学习的51单片机,用51单片机做过几个小实验,毕业后,工作需要,做过半年AVR,然后又因为项目需要,就转到stm32单片机了,当时学习STM32是自学摸索,所以在学习STM32,我有自己的看法。
STM32的固件库,除了启动文件.S
文件,其他的底层,其实是使用寄存器地址,映射到相关的位置,然后使用结构体定义,用指针替代,最后形成对应的寄存器,比如GPIOE->ODR,固件库再以此进行操作寄存器操作,封装成函数,并将相同外设的多个函数放到相同的.c的文件中.
总结固件库用法,主要是对结构体的变量进行赋值,将赋值好的结构进行初始化函数运算.调用各类合适的函数.并在此基础上,完成自己需要的代码功能处理,
对于自学者来说,尤其是从51单片机转过来的自学者来说,习惯了51单片机操作寄存器配置,学习stm32固件库是比较不习惯和困难的,尤其是对于C语言的指针和结构体理解不够透彻的同学,更有难度。
所以我学stm32,最初是学习的stm32f1系列的寄存器。
前提条件是,需要stm32一块开发板,有jlink烧录器,搭建好能够开发stm32的keil的开发环境。能仿真操作。
1,学习IO端口的普通输入输出的操作
2,学习串口操作,串口数据的 输入输出,以方便有利于调试
3 学习ADC,进行模拟量采集,比如电池电量
4 学习SPI,
5 学习片上FLASH存储
6 学习以太网,
7 学习USB
8...
学无止境,要学的很多,我觉得学习STM32从0-1最难,找到办法后,后续的学习就是按部就班,费时间努力去学就可以了,
以上是问题的粗略解答,难免会有遗漏
希望大家留言,点赞,转发,关注
到此,以上就是小编对于零基础学stm32要多久的问题就介绍到这了,希望介绍关于零基础学stm32要多久的2点解答对大家有用。