STM32F103各个版本的芯片的ADC的参考电压是多少啊,器件手册里没有写啊?
从数据手册看,STM32F103ZET6的ADC1的参考电压是外部输入的,它的31脚和32脚就是基准电压输入脚。
输入模拟信号为Vref-,时,ADC的输出为000000000000,输入模拟信号为Vref+时,ADC的输出为111111111111。Vref的取值范围2.4 V≤Vref≤Vdda。管脚100的,Vref+和Vref-是21脚和20脚。管脚100以下的不清楚。如何自学stm32?
STM32单片机的性价比和功能很丰富的,应用广泛,学好STM32对就业很有帮助,前景很不错。给初学者提出几点建议。
入手一块适合的开发板
学习单片机就是要学习单片机外设电路的设计、单片机程序的编写以及电子产品开发的流程。而开发板是一个不错的选择,将常用的外设电路都集成到开发板上,方便了学习,厂家还会提供相应的例程和学习资料,省去了自己找资料的过程。
学习硬件电路的设计
拿到开发板首先研究一下硬件电路,对每一个功能模块的外设电路分析一下,在分析的过程中要理解器件的使用,控制方式,如果你做方案会用哪些元器件来实现这个功能。在学习之处可以看的不用太深,但是一定要知道控制原理,后面编程要知道。
学习C语言程序的设计
在初学阶段,要读懂厂家提供的例程,学习单片机的寄存器是什么,学习寄存器是如何工作,如何配置的,要读懂例程是如何通过程序控制硬件的,比如和输出高电平点亮/熄灭LED,如何实现IIC通讯等。程序的实现方式因人而异,所以要抛开例程,自己去编程。
学习产品的设计流程
学习是途径,会做做产品才是最终目的。要懂得如何提出需求,把需求转化成技术方案,要考虑如何选型,如何控制成本,如何提高产品的稳定性等。所以要多多的参与项目、参与产品的研发。
最后必须要说的是,学习单片机一定不要整天抱着书看,而是要多动手。
以上就是这个问题的回答,感谢留言、评论、转发。
更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。
要想学好STM32,不仅仅需要学好程序设计,还要具备一定电子电路的知识,不需要太深,对上拉、下拉电阻,LED灯、三极管这些有一个基础的认识就行。
其次就是要对C语言有一定的理解,不需要太深,把基础语法搞懂了就行。后期遇到不会的可以直接翻书,这样效果最好。
电子电路
STM32属于COMS集成电路,除了要掌握基本的《模拟电子技术》之外,还需要对《数字电子技术》有一定的了解,比如门电路、触发器这些,一定要明白他们的工作原理,才会清楚单片机的工作原理,这样你也会明白软件是如何控制硬件的。
学习数电的话,最直接、有效的是去看《数字电子技术》这本书,但是要有耐心,因为看书很枯燥,这书讲的很正式,很多时候不容易理解,所以我们针对单片机、电子设计这些专门建了一个付费群,资料一直在更新,有兴趣的可以私信我们这边。
库函数
有的小伙伴想速成,想直接学STM32的编程,不想学那些电子有关的可以吗?
答案是完全可以的,即使不懂那些电子知识,你也可以学会STM32,用STM32开发项目,只不过这样对STM32的工作原理理解的不够到位,如果有时间的话,建议小伙伴们一定要把电子基础学了,再来搞单片机。
学习STM32编程,有两种方式,一种是传统的编程方式:寄存器操作,另一种是:库函数操作。在这里我建议大家用库函数操作,因为STM32的寄存器太多了,操作起来不方便,浪费时间,编写项目程序还得花大把时间去翻阅数据手册。
因为库函数把这些寄存器都封装好了,我们只需明白这些库函数的含义,以后用到的时候直接COPY就可以了,大大节约了我们的时间。
如果没有学过寄存器,可以先学习51单片机,这样你对单片机的寄存器有了了解之后,再来学习STM32,将使你快速理解STM32单片机。
首先你要有一个开发板,如果你是刚入门单片机领域的,建议从视频开始学习。书籍方面最起码要有一本 C 语言书籍,方便查阅 C 语言知识点。
刚开始学习的时候注意以视频为主,反复看都看不懂的知识点可以看书,还是不懂的话就要上网搜寻答案了(当然如果身边有前辈的话也可以请教,这是最好、最直接的方式)。多方面结合学习效果更好。
说说我的学习经历吧。我是大一的时候在实验室接触到单片机的,目前已经毕业了,学习时间也不短了。一直以来在别人学习各种编程语言的时候,我都始终坚持只学 C 语言,只用 C 语言,虽然后期为了更好的理解 C 语言学了点汇编知识,但也只是皮毛罢了,所以我最擅长的还是 C 语言。
C 语言学习最重要的是多练,多看。多练就是需要通过一些小的项目去运用你所学的知识,这样你才能更深刻的理解。而对于 C 语言语法问题,这种是最简单和基础的错误,既不要太重视也别轻视,平常心对待就行了,因为你写的语法错误会有编译器帮你检查出来的,一旦出现警告和错误,一定要看输出信息,通过信息来判读你的错误原因。一定要注意看懂英文,理解它表达的中文意思,别说自己英文水平太烂,看不懂,多看几次,多用Google翻译一下就记住了,熟能生巧。如果说你知道了表达的错误意思,但还是不知道怎么解决问题,那么就把这条出错信息复制一下,然后粘贴到网上搜一下就知道了,你要知道,你碰到的绝大多数问题别人都可能碰到过,也可能解决了。所以要充分利用网上的资源学习。多看,就是要多看别人的代码,这样才能发现自己不足的地方,并且可以学习别人优秀的地方。STM32学习中库函数会是很好的学习资源,这个代码写的非常规范,如果感兴趣的话可以多看看库函数的实现,这对你的 C 语言学习会有非常大的帮助。
然后是单片机的学习,单片机软件开发基本上都是基于 C 语言的,所以你的 C 语言基础一定要扎实,这样你的单片机学习之路才能走的更顺畅。单片机学习无非就是各个模块的使用,所以学习的过程就是按照视频教程一个模块一个模块的学习,虽然辛苦,但你会发现自己每天都在进步,会有很大的成就感,这种成就感不是课堂学习能比的。
STM32单片机资料现在做的比较好的有正点原子和安富莱这几家,它们的入门资源也很丰富,可以好好利用。不过我当初学 STM32 时看的是 刘凯 老师的视频,也是相当不错入门视频教程了。
这都回答的什么鬼东西哦。。。
我给你整理下,现在学习STM32最好方法,就是下载cubemx,然后学习HAL库或者LL库。
问我什么是库?库就是我们用它去实现单片机寄存器的配置,更加容易看得懂。因为这种32位的单片机不像8位机那样,寄存器太多了,不容易记忆的。所以就搞出来库函数。
那么为什么有这么多种库,事实上STM32也就是意法它本来就是想卖芯片,它非常懂中国人需求,想把芯片卖出去,那配套就要又全又好,最好还要简便。
那么,库函数也是人写的,就涉及到一个库函数要不要升级版本的问题?比如解决之前的bug,比如做到兼容下一代产品,等等。
所以经历了从标准库到HAL库再到LL库的演变。HAL与LL库应该不是一帮人写的,它家里技术储备还是很强的。两个库的可读性都很好,个人建议上手HAL库,这个简单一点,网上教程也非常多。
介绍完了这个库,介绍一下HAL的学习,首先你得下载STM32cubemx,然后下载相关库。当然前提是你得有一个开发板,从STMF103c8t6这样48引脚的开发板玩起。然后,你可以在下载的文件里面看到各种范例,STM32牛就牛在,你想到的功能基本上在它给你的例程里面都有现成的,所以,很容易上手。
然后,如果你还是看不懂这个东西,我建议去搜索两个资源,一个是硬石stm32,一个是微雪stm32。我说的都是HAL库。如果你觉得标准库更适合你,搜索刘凯老师的stm32视频。当然了,这些资源我都有。有机会我给你分享一下如果你需要的话。
最后呢,我还想说,这个单片机很强大,但是需要一定的耐心去学习,否则基本上都是半吊子。
学习stm32单片机,无非就是学习单片机的外设寄存器配置,如果仅仅只是学习单片机的使用,建议先学习使用库函数的使用方法。如果想深入了解单片机的内部原理,那就从数据手册开始入手,数据手册可以从官网或其他渠道下载,对于不理解的地方建议从网上搜索相关视频学习。
stm32上电复位后,是所有的IO口都处于浮空输入模式吗?
以STM32F103系列单片机为例,从数据手册上看,单片机的GPIO口在复位后默认是输入模式,而且是浮空输入模式。在手册上可以查到,介绍查看方法。
所使用的手册是STM32F10xxx参考手册,这个手册可以在官网或者论坛下载到,有中文版本。在参考手册上可以看到,STM32单片机的GPIO口共有八种操作模式。
STM32的GPIO口的配置是通过端口配置寄存器来实现的,该寄存器为32位,由端口配置位和端口模式位组成,其复位值是0x44444444,即端口配置位的复位值是01,而端口模式位的复位值是00。
通过查询端口模式位的具体描述可以发现00表示输入模式,即说明:STM32单片机在复位后GPIO口都默认为输入模式。
端口配置位为01表示浮空输入模式,即说明:STM32单片机在复位后GPIO口都默认为浮空输入模式。
从以上信息即可知道,STM32单片机的GPIO口默认为浮空输入模式。
通过数据手册还可以查询输入数据寄存器和输出数据寄存器等的默认模式,凡是单片机在使用过程中用到的所有寄存器信息都可以在数据手册中查询到,所以数据手册是学习单片机最权威的资料,很多书都是翻译了数据手册的内容。
以上就是这个问题的回答,感谢留言、评论、转发。
更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。