关于 STM32 的几点内容

描述

每天后台都会收到各种各样的问题,其实我每天都会抽空回答一下问题。所以,今天写几个后台朋友问的问题。

主要内容:

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的功能就更多了:

STM32

很多人经常看见别人代码中开启AFIO时钟、SYSCFG时钟,但自己却不知道究竟什么时候开启,什么时候不开启。那么,只需要看一下手册就行了。

如果你不知道何时开启,使用STM32CubeMX配置生成初始化代码查看一下就知道啦。

2关于STM32中的各种电源

有朋友要求讲述一下关于STM32中ADC参考电压的问题,这里就简单就讲述一下关于STM32中各电源的情况。

STM32中电源有:VBAT、 VSS、 VDD、 VSSA、 DDA、 VCAP、 VREF+、 VREF-等。

关于电源,可以查看STM32参考手册【电源控制】的章节,看一下里面电源框图就一目了然了。拿STM32F4举例:

STM32

其实,主要划分为三块区域:备份区域(电池电源)、常规供电电源(VDD)、模拟部分电源(ADC、DAC等)。

一般参考电压VREF+或VREF-只有在大封装100及以上引脚才有。没有参考电压的芯片就是使用内部参考电压。

有一个条件,VREF+ 引脚电压:VSSA- < VREF+ < VDDA。

内部参考电压VREFINT

一般内部参考电压 VREFINT 连接到 ADC1_IN17,也就是说可以通过ADC读取内部参考电压。

STM32

3IAR中如何查看外设寄存器

前面一篇文章【IAR在线调试查看各种变量的不同方法】讲述了IAR View视图菜单中的几个子菜单,查看几个变量的窗口。

于是,后台就有朋友问了一个问题:IAR开发环境中定时器的寄存器状态在哪里查看。

因为很多朋友都是从Keil MDK-ARM过来的,知道MDK-ARM里面可以直接查看外设寄存器,而且可以快速的查看每一个Bit位。如下图:

STM32

STM32

那么,回到EWARM,很多朋友找了很久,就是没有找到类似上面Keil中那种快速查看的方法。

说实话,包括我也是从初学IAR到后面工作了,一直都没有找到类似上面可以快速查看外设寄存器的方法。那么,是不是就没有办法确定我们配置的外设寄存器的值了呢?

答案是:我们可以通过View视图菜单下Memory和Symbolic Memory子菜单锁定外设寄存器所在地址的值。

STM32

上图,是STM32F103中GPIOA的地址,当我们修改过寄存器的值,就会看见对应的值。此方法的缺点显而易见,必须知道外设寄存器的地址,而且查看非常费时。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分