自学stm32的一些个人经验
1.首先我们先看看与STM32相关的文档
我们假定大家已经对STM32的书籍或者文档有一定的理解。如不理解,请立即阅读STM32的文档,以获取最基本的知识点。
如果你手上拥有ST官方主推的STM32神舟系列的板子,那么光盘都会配好这些文档,STM32的学习与ARM9的学习有一个很大的区别。ARM9的学习
一般是需要购买书籍的。比如三星的S3C2440,官方的文档都是英文的,大部分工程师只能去看国内出版的书籍。英文好的同学,请不要以为
你很牛,可以只看英文文档。毕竟你是中国人,你最熟悉的,理解最好的还是中文。看英文的速度还是比看中文慢一些,我们要的是最短的时
间,而不是追求短时间内记住所有细节。当然,如果是一篇论文,建议看英文原版还是有好处的。
STM32处理器进入国内市场时候,ST官方(或者第三方)的推广工作做的非常好。翻译了大量的英文文档,迎合了国内的
很多工程师的思维。神舟系列的开发板就是迎合这种中国化,本土化,方便学习和使用;所以现在大部分STM32F103xxx的用户datasheet都有
中文版,例子也很齐全,因此可以不用去购买书籍,看电子档即可。
学习的时候,关注两个比较重要的文档:《STM32F103xxx参考手册》,《STM32固件库使用手册》。
该网址,是针对有充足的时间、精力的同学,建议去下载需要查阅的文档,以获取更多信息。
阅读《STM32F103xxx参考手册》,一定要注意,不需要全部阅读——没有时间的。建议选读,但是前几章必读。存储器
和总线架构、电源控制、备份寄存器、复位和时钟控制,通用和复用功能I/O,中断和时间等等前几章一定要花时间阅读。
后面章节,讲述的是具体的功能模块设计。如果我们用到哪个模块,就可以去阅读哪个模块。比如在使用AD的时候,就
需要去阅读第10章ADC。其他不举例。相信每个初学者都有自己的研究方向和判断。
阅读《STM32固件库使用手册》,主要是为了简化编程。STM32给我们提供了一个非常好的固件函数库,我们只要去调用
即可。当然,我们也可以不去碰这些固件库——传说使用它会使得代码效率变低,是有道理的。网络上也出现了很多网友自己写的代码,没有
使用带固件库函数。如何取舍,在于您的选择。
这里我主要强调的是,阅读《STM32固件库使用手册》的时候,前面几章也是必须阅读的。比如第一章文档和库规范中
的命名规则,编码规则,这些都是需要注意的。第二章是最关键的,希望大家熟读。第二章描述了固件库的架构,我们如何去使用固件库的步
骤等。有了第二章的基础,我们就可以借助固件库写出自己的代码了。第四章开始之后,就可以根据大家的需要来阅读。实际上,后续的章节
,都是描述某个模块有什么什么函数,每个函数如何使用等。
关于后面的章节,建议对GPIO库函数、中断部分库函数、复位和时钟设置的库函数要比较熟悉,因为平时经常会用到
。
以上提到的这两个文档,已经足够您看的了,呵呵。希望您能从中获取大量的STM32基础知识。
2.设定一个不错的两周入门计划
(1)这里所谓的“入门”,指的是能理解并掌握一些常用的STM32外设,真正想掌握一款处理器,两周根本说明不了什么问题。只能说,你已
经有所了解了。但是,这对我们初学者来说已经足够了。
(2)这里所谓的“两周”,根据每个人的时间安排不同而不同。
如果您每天有充足的时间学习,那么可以规定自己尽快地能独立地进行简单的STM32开发。
如果您每天只有业余时间来学习STM32,建议根据您的具体情况安排时间。毕竟计划时间如果安排太紧,反而收不到良好的效果
,只能进入恶性循环,这是我们要避免的。
但是建议,不管您有无充足的时间,都必须给自己做一个计划!!
我这里列出一个思路,仅供参考。
步骤一,安装完STM32学习的软件,比如J-Link、Keil for ARM(MDK)、ISP(如果需要从串口下载的话)。这些软件安装的详细步骤,可以
参考我们推出的相应教程进行。
步骤二,挑选部分例程的HEX,比如LED灯的例程HEX文件,下载到芯达STM32开发板中,观察两个LED灯的闪烁情况。这部分的操作,可以参考
我们推出的相应的教程进行。
实际上,以上两个步骤,是为了熟悉要使用的工具软件而已。属于找感觉的阶段。其实我们还没开始STM32的学习呢!
步骤三,准备几个常用的文档,比如《STM32的用户手册》,《STM32固件库使用手册》等文档。用于平时查阅。这些文档,在光盘中的芯片手
册目录中均可找到。
步骤四,开始查看例程的编写,看看例程是如何写的,自己可否修改下例程,达到自己想要的效果呢?芯达STM32开发板的光盘中为大家提供
了丰富的例程代码,可以参考。您一定可以修改出更精彩的例程!
步骤五,Ucos-II的移植,是否需要试一下?
恭喜你,至此,你已经可以自如进行独立的开发了。最后一步,给自己一个目标(项目),把它实现出来!
再次强调,以上只是一个学习STM32的思路,供大家参考。下面列出了前面关键的步骤,希望大家能尽快入门。后续的每个模块
的编程,请参考神舟I号(103RBT),神舟II号(103vct),神舟III号(103zet),神舟IV号(103vct)中任何一款的入门手册,官方网址
armjishu.com上有下载的,大家可以参考参考。
第1步:熟悉调试软件
对初学者来说,我们至少需要安装两个软件:J-Link驱动软件、MDK(就是原来的Keil)软件。这两个软件在安装软件的过程可以查
看神舟开发板用户手册,这里不再重复,大家可以参考我们推出的教程《如何安装J-Link驱动软件》以及《如何安装MDK(Keil)软件》。如何
验证自己已经熟悉调试软件的操作了呢?很简单,神舟STM32开发板光盘里附带了很多HEX格式的文件,可以选择一些HEX文件,来观察运行结
果。比如LED灯的例程HEX文件,下载到神舟STM32开发板中,观察两个LED灯的闪烁情况。灯在闪烁,就说明你刚才的操作已经把HEX文件烧写
到闪存中了。
该步骤要达到的目标:熟悉调试软件,如烧写HEX出现问题,可简单判别问题所在,并独立解决。
第2步:GPIO编程
这是第一次接触固件库的编程,一定要硬着头皮去了解固件库。建议大家尽量去用固件库。而不是避开固件库自己写代码—
—这样只能在学习中才会发生。实际的项目中,代码成百上千个,如何一个一个自己写?调用固件库中的函数来完成,才是王者之道。
GPIO本身的编程实际上很简单:
1、设置GPIO口的引脚为输入或者输出模式。我们在进行点灯代码的时候,一般设置为推挽输出模式。
2、操作寄存器,往寄存器里置1或者清零操作——这个步骤,固件库已经提供了专门的GPIO_SetBits函数和GPIO_ResetBits函数,我们只要去
调用即可实现对IO口的置1和清零。
3、实现多种花样的LED闪动,使得自己熟悉GPIO的编程过程。
该步骤要达到的目标:熟悉调试软件,如烧写HEX出现问题,可简单判别问题所在,并独立解决。
第3步:开始全新的STM32深入研究
经过以上调试软件的熟悉和GPIO口的编程调试后,相信您已经对STM32有一定的了解。至少知道如何利用STM32的固件库去写一
个代码。OK,下面我们将开始全新的STM32深入研究。在这个阶段,将要接触到串口编程、TFT液晶屏驱动编程、定时器编程、串行外设接口
SPI编程、存储器编程、SD卡与文件系统移植、USB读写、UCOS移植等,有精力还可以研究其他外设。
如果有需要欢迎加我拿自己需要的资料:1792731008
(stm32串口应用)
http://www.makeru.com.cn/live/detail/1290.html?s=45051
(stm32电机驱动)
http://www.makeru.com.cn/live/1392_1218.html?s=45051
(定时器)
http://www.makeru.com.cn/live/1392_1199.html?s=45051
转载于:https://www.cnblogs.com/QianD/p/10384727.html
自学stm32的一些个人经验相关推荐
- 想自学stm32不知道怎么买板子?我来告诉你新手该买哪一个!
我从零基础自学单片机,最后从事这个行业开发多年,来分享下我的经验吧,不一定是最好的,但绝对是最靠谱的! 一.自学建议 如果是刚入门单片机的,建议还是从51单片机开始学起. 有些老手建议直接学STM32 ...
- 自学stm32,需要会到什么程度才能找到一份工作?
说到自学,小有体会,自学的过程焦虑而痛苦,这一切,还是来源于对未来的不确定性. 今天通过个人经历和经验,希望能为你揭开迷雾,找到前进的方向. 回想我曾经自学单片机的时候,当时还很年轻,思维也还没现在这 ...
- 自学软件测试如何得到项目经验,这是我摸爬滚打的实战经验谈...
去年年底的时候我写了一篇,关于如何自学软件测试的攻略,一些小伙伴根据我的攻略学习后,找到了软件测试的工作,成功的实现了换行. 不过也有一部分小伙伴,在学完后,去找工作,被问到项目经验时,不知所措. 今 ...
- 自考计算机专业的草根,一个外行草根自学中医的历程和经验分享!人人皆可学,求人不如求己!...
由 邻居小儿夜里盗汗 想到的 老百姓之悲 昨晚吃晚饭时,和家人聊天,家人在小区里听到不认识的邻居说她们小儿这么大热天,白天运动不怎么出汗,夜里睡觉到是经常出汗,很是羡慕那些反过来的小朋友,这虽然是个小 ...
- 零基础自学python计划_「经验分享」python零基础学习规划与建议!
如果你选择了自学,我想给你提几点建议: 1.找浅显易懂,例程比较好的教程,从头到尾看下去.不要看很多本,专注于一本.把里面的例程都手打一遍,搞懂为什么. 2.去找实际项目练手.最好是要有真实的项目做. ...
- (转)Limboy:自学 iOS 开发的一些经验
不知不觉作为 iOS 开发也有两年多的时间了,记得当初看到 OC 的语法时,愣是被吓了回去,隔了好久才重新耐下心去啃一啃.啃了一阵,觉得大概有了点概念,看到 Cocoa 那么多的 Class,又懵了, ...
- 自学 iOS 开发的一些经验 - 转自无网不剩的博客
不知不觉作为 iOS 开发也有两年多的时间了,记得当初看到 OC 的语法时,愣是被吓了回去,隔了好久才重新耐下心去啃一啃.啃了一阵,觉得大概有了点概念,看到 Cocoa 那么多的 Class,又懵了, ...
- 0基础自学stm32(野火)——什么是寄存器?
重点: 存储器映射 寄存器映射 首先学会分辨器件的1号引脚,注意是逆时针旋转. ##先搞清楚芯片内部结构 "AHB,是Advanced High performance Bus的缩写,高级高 ...
- 自学转行前端3年经验,终入职阿里!
点击上方"蓝色字体",选择"设为星标" 做积极向上的前端人! 作者:洛禹Keith https://juejin.cn/post/692229017883692 ...
最新文章
- minsdk(API23)deviceSdk(API22)
- 读一个文件的java程序_java 读文件的几种方法(一)
- Java Web 程序员的发展趋势分析
- mongodb中简单的聚合查询
- [bzoj1614]: [Usaco2007 Jan]Telephone Lines架设电话线
- Spring Boot教程(11) – 理解注解@ControllerAdvice
- python 链表操作 优化_python---单链表的常用操作
- 阿里 AI「一对多」挑战人类律师;谷歌或将推出自研手机和电脑芯片;JavaScript诞生25周年|极客头条...
- docker启动nginx后挂了_使用docker启动nginx并挂载配置nginx
- ABP官方文档(四十七)【通知系统】
- Office---Excel操作技巧使用正则表达式
- kubect安装 windows_k8s安装kubectl top命令
- JAVA操作execl
- Arena | 用Excel设计的RPG游戏
- Linux学习(入门)
- Matlab 求方程的根
- 闲鱼卖家近期卖出后纠纷4次,请谨慎交易怎么办?
- Matlab 高光谱影像信息熵/信噪比计算
- 日历待办软件推荐桌面日历待办便签
- 计算机考试internet应用好考吗,职称计算机考试《Internet应用》基础习题
热门文章
- linux 进程崩溃log,linux调试:dmesg 查看程序崩溃原因分析方法之一
- python中字符串str的strip()方法
- Qt_发送邮件(以qq邮箱为例)
- c语言 连通域算法 递归,VC++ 6.0编写计算机图形学中的种子填充算法,想用递归的八向连通域,求助!...
- dell笔记本插上耳机没有声音_跑男的耳机没有声音,沙溢只用一句话诈出来,不愧是《王牌》常客...
- ajax live search,AJAX Live Search
- linux shell脚本关于文件存在与否的判断
- java中string类相等_Java中String类的常见面试题
- mysql相互密码_去掉mysql命令行密码不安全的提示
- 为了在简历上写掌握【Java集合】,做了万字总结