历史上的今天
今天是:2025年01月28日(星期二)
2021年01月28日 | 关于STM32的几点重要内容
2021-01-28 来源:eefocus
主要内容:
1.为什么STM32F0没有AFIO时钟呢?
2.关于STM32中的各种电源
3.IAR中如何查看外设寄存器
4.关于问问题
1为什么STM32F0没有AFIO时钟呢?
前面写过一篇文章【关于STM32时钟配置的那些坑】里面有讲述关于什么时候开启AFIO时钟,有朋友下来去研究AFIO时钟时发现STM32F0芯片中没有AFIO时钟,于是就问了这么一个问题:你好,为什么STM32F0没有AFIO时钟呢?
答案就是STM32F0没有AFIO时钟。那又是怎样实现重定义这个功能的呢?
实现重定义功能也是由特定的控制器完成的,需要使用某个控制器,就需要开启对应的时钟。
而STM32F1就是由“Alternate function I/O and debug configuration”完成的这个功能,所以开启的时钟就是AFIO时钟。
细心的朋友会发现除STM32F1外的MCU,像F0、F2、F3···L4,甚至最新的H7这些芯片里面都有这个一个控制器:系统配置控制器 (SYSCFG)。
这个SYSCFG控制器的功能因芯片不同,功能也不同。比如F4系统配置控制器主要用于管理对可执行代码的存储区域的地址重映射、选择以太网 PHY 接口以及管理 GPIO 的外部中断线连接。
像H7的功能就更多了:

很多人经常看见别人代码中开启AFIO时钟、SYSCFG时钟,但自己却不知道究竟什么时候开启,什么时候不开启。那么,只需要看一下手册就行了。
如果你不知道何时开启,使用STM32CubeMX配置生成初始化代码查看一下就知道啦。
2关于STM32中的各种电源
有朋友要求讲述一下关于STM32中ADC参考电压的问题,这里就简单就讲述一下关于STM32中各电源的情况。
STM32中电源有:VBAT、 VSS、 VDD、 VSSA、 DDA、 VCAP、 VREF+、 VREF-等。
关于电源,可以查看STM32参考手册【电源控制】的章节,看一下里面电源框图就一目了然了。拿STM32F4举例:

其实,主要划分为三块区域:备份区域(电池电源)、常规供电电源(VDD)、模拟部分电源(ADC、DAC等)。
一般参考电压VREF+或VREF-只有在大封装100及以上引脚才有。没有参考电压的芯片就是使用内部参考电压。
有一个条件,VREF+ 引脚电压: VSSA- < VREF+ < VDDA。
内部参考电压VREFINT
一般内部参考电压 VREFINT 连接到 ADC1_IN17,也就是说可以通过ADC读取内部参考电压。

3IAR中如何查看外设寄存器
前面一篇文章【IAR在线调试查看各种变量的不同方法】讲述了IAR View视图菜单中的几个子菜单,查看几个变量的窗口。
于是,后台就有朋友问了一个问题:IAR开发环境中定时器的寄存器状态在哪里查看。
因为很多朋友都是从Keil MDK-ARM过来的,知道MDK-ARM里面可以直接查看外设寄存器,而且可以快速的查看每一个Bit位。如下图:
那么,回到EWARM,很多朋友找了很久,就是没有找到类似上面Keil中那种快速查看的方法。
说实话,包括我也是从初学IAR到后面工作了,一直都没有找到类似上面可以快速查看外设寄存器的方法。那么,是不是就没有办法确定我们配置的外设寄存器的值了呢?
答案是:我们可以通过View视图菜单下Memory和Symbolic Memory子菜单锁定外设寄存器所在地址的值。

上图,是STM32F103中GPIOA的地址,当我们修改过寄存器的值,就会看见对应的值。此方法的缺点显而易见,必须知道外设寄存器的地址,而且查看非常费时。
4关于问问题
可能有很多朋友问了问题之后,没有响应。答案是:可能被我被我忽略了,原因可能有几点:
1.没有称呼、抬头连“你好”这类用词都没有的;
2.文字太多,内容杂乱,思路很杂乱;
3.内容太片面,没有明确所问的问题。比如:我该如何学习软件开发?
因为我是个人在更新并维护这个公众号,不是公司、团队,而且我也在上班。所以,时间和精力也是有限的,希望大家问问题的时候尽量换位思考一下。
简单来说:问问题也是一门技术活,也是锻炼一个人语言(文字)组织的能力。希望在今后的问与答中,你我都有所成长。
史海拾趣
|
用定时器1做的简单输出,友善micro2440的板子 请帮我分析下,搞了好长时间,还是出不来 流驱动:#include \"options.h\" #include #include #include #include #include #include #include #include #include \"time.h\" ...… 查看全部问答> |
|
我在2440的开发板上使用SD卡用作U盘,在我的电脑上可以看到 ,也可以读写文件,但经常写一部分就出错,比如同时写200多个文件,写了几十个或100多个文件时(已经写进去的文件是好的,可以用读卡器读到),就出现错误。 ...… 查看全部问答> |
|
请问一下各位 学校里学的C语言和单片机C语言(C51)有啥子不一样的?哪个好学一点. 在学校里学了C语言后感觉没有学到啥子,挺浮浅的,现在只记得一些简单的规则和语法。 不知道现在是继续学它基础打扎实点呢,还是就开始学C51,希望大家给点建 ...… 查看全部问答> |
|
岗位描述: 1、 嵌入式软件设计与开发。 2、 根据项目需要进行软件技术支持。 3、 嵌入式项目软件开发过程控制 任职要求: 1、 熟悉Keil\\IAR开发环境,熟悉C/C++语言 2、 ...… 查看全部问答> |
|
plc车库管理设计梯形图 控制要求: 1.入库车辆前进时,经过1#传感器-->2#传感后,计数器A加1,后退时经过2#传感器-->1#传感器后,计数器B减1;(计数器B的初始值由计数器A送来)只经过一个传感器则计数器不动作 2.出库车辆前进时,经过2#传感器-->到1# ...… 查看全部问答> |
|
ppc2003可以直接访问sql2000 server中的数据吗? ppc2003通过wifi跟局域网连接后,可以通过编程直接访问服务器上sql2000 server中的数据吗?有人说必须在ppc上安装sql CE,然后通过sql CE跟服务器上的sql2000交换数据?真的是这样?… 查看全部问答> |
|
最近在调STM8 的I2C(不想搞模拟的I2C),结果I2C没有调通,不知道问题所在,软件是参考I2C EEPROM固件那个程序写的。初始化如下: void IIC_Init(void) { UCHAR temp; CLK_PCKENR1 |= 0x01; I2C_CR1 = 0x00; &n ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 12:51 编辑 我这两天用面包板按照vca810芯片的datasheet中的figure2 电路搭建了一个压控放大,将8脚的50欧姆电阻去掉,并在8脚加了一个vpp=30mv,f=800hz的正弦波(函数发生器产生),并在1脚直接接地。但是在Vc= ...… 查看全部问答> |




