stm32基础知识
学习的第一天,记录下来一些知识点。
以问题或者直接笔记的形式记录下来。
1.电源模块为什么采用这么多引脚?只采用一个接高电平一个接低电平不可以吗?
不同模块都会用到电源,如果都接线会特别绕,供电会不稳定。故是出于性能稳定的考虑和节省布线的难度。
2.为什么stm32芯片外有两个不同频率的外部时钟?
连接到不同的外设,它们工作的频率不一样。在外部的原因:内部的RC震荡电路不够稳定,不如外部单独设置的稳定。低速的可以分频为1Hz,成为实时时钟,指示实际的时间。
3.NRST低电平有效,平时连接高电平。当按键按下时,上拉电阻构成回路,电压降落全在它身上,那么NRST直接连接到地,成为低电平。
4.以前的keil本身内嵌了51的相关支持,现在是keil_mdk_arm,针对arm内核所有单片机、处理器的支持,而基于arm的芯片很多,需要自己下载。
5.ST公司不对标准库进行更新了,故不能用最新的编译器,只能用降一级版本的编译器。
6.为什么51里没有时钟?
51里面只有一个时钟,不需要另外配置,默认生效。32模块太多了,每个模块涉及到的外设工作速度不一样,运行的频率不一样,用的时钟也不一样,故每个模块工作时单独的时钟要单独配置。
7.代码中要做精细化操作,RCC->APB2ENR = 4;比如这种,很粗糙很危险,因为这样可能会让其他一些端口的功能失效
8.推挽输出?
就是一推一拉(中文翻译的比较雅)。两个MOS管交替工作来驱动负载:输出0,下边导通,接低,电流拉进来,是拉电流;输出1,上边导通,接高,电流推出去,是推电流。
9.开漏输出?
输出0,正常接地;输出1.输出高阻态,需要配上拉电阻,将输出口拉至高电平,从而输出1.
10.推挽输出貌似比开漏输出更好用,那为什么有时候使用开漏输出而不是推挽输出?
①高电平的转变。输出的高电平是5v,而不是3.3v,就可以使用开漏输出配上拉电阻接不同电平的外接电源,从而输出5v
②线与。如IIC,总线的形式。若采用推挽:当与其他外设输出都是0或1时,正常;当它与其他外设错位输出(如它1其他0)会构成回路,将芯片烧毁。但采用开漏:有人输出0,线与全是0(也就是跟推挽一样:正常),若它输出1,其他外设有输出0时,它本身其实是高阻态,不会构成回路烧了芯片,因为这个输出的1是外接的电源,不会与总线之间的外设构成回路。
浙公网安备 33010602011771号