历史上的今天
返回首页

历史上的今天

今天是: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.内容太片面,没有明确所问的问题。比如:我该如何学习软件开发?


因为我是个人在更新并维护这个公众号,不是公司、团队,而且我也在上班。所以,时间和精力也是有限的,希望大家问问题的时候尽量换位思考一下。


简单来说:问问题也是一门技术活,也是锻炼一个人语言(文字)组织的能力。希望在今后的问与答中,你我都有所成长。


推荐阅读

史海拾趣

Broadband公司的发展小趣事

由于电子行业中Broadband公司的发展故事可能涉及众多细节和具体数据,且这些故事往往与公司的战略决策、市场环境、技术创新等多方面因素紧密相关,因此,我无法直接为您虚构或编造五个具体的发展故事。不过,我可以为您提供一种可能的框架或思路,帮助您了解如何构建这样的故事。

在构建Broadband公司的发展故事时,您可以考虑以下几个方面:

  1. 公司背景与初创阶段:描述公司的成立背景,包括创始人、初始资金、技术基础等。讲述公司如何抓住市场机遇,推出首款产品或服务,并在早期市场中获得一定的份额。

  2. 技术创新与产品升级:描述公司在发展过程中如何通过技术创新不断提升产品性能和服务质量。可以提及公司在研发方面的投入、取得的专利成果,以及这些创新如何转化为市场竞争力。

  3. 市场拓展与合作:讲述公司如何逐步扩大市场份额,包括进入新的地区市场、拓展应用领域等。同时,可以提及公司与其他企业或机构的合作,如产业链上下游的整合、战略合作等。

  4. 应对市场挑战与竞争:分析公司在发展过程中遇到的市场挑战和竞争压力,如竞争对手的崛起、政策调整等。描述公司如何调整战略、优化运营,以应对这些挑战。

  5. 未来展望与战略规划:基于当前的市场环境和公司实力,展望公司的未来发展前景,包括可能的市场趋势、技术方向等。同时,描述公司的战略规划,如扩大产能、拓展新业务领域等。

在构建这些故事时,请确保基于事实进行描述,避免夸大或缩小事实。您可以查阅相关公司的官方资料、行业报告、新闻报道等,以获取准确的信息和数据。同时,注意保持故事的连贯性和逻辑性,使读者能够清晰地了解公司的发展历程和现状。

希望这个框架能够帮助您构建出符合要求的Broadband公司的发展故事。如果您需要更具体的帮助或建议,请随时告知。

BELDEN公司的发展小趣事

BELDEN公司的故事始于1902年,当Joseph C. Belden在美国芝加哥创立这家公司时,他怀揣着对电线电缆制造的深厚热情与独特见解。初创时期,公司致力于研发和生产高品质的电线电缆产品,很快便在市场中赢得了良好的声誉。经过多次试验,公司成功发明了“Beldenamel”绝缘材料,这种柔韧的珐琅绝缘材料为公司的成功奠定了坚实的基础。随着产品的不断优化和市场的逐步拓展,BELDEN逐渐在电子行业中崭露头角。

Deutsch公司的发展小趣事

在竞争激烈的电子行业中,品质控制和品牌建设至关重要。Deutsch公司深知这一点,因此始终将品质控制和品牌建设作为公司的重要任务。公司建立了严格的质量管理体系,确保产品的每一个细节都符合高标准。同时,通过精心策划的品牌推广活动,Deutsch公司的品牌形象逐渐深入人心。这些努力不仅提升了公司的市场地位,也增强了客户对公司的忠诚度。

EPCOS (TDK)公司的发展小趣事

在国际化布局方面,TDK-EPC公司始终保持着积极开放的态度。公司通过设立海外研发中心、生产基地和销售网络等方式,不断拓展国际市场。同时,公司还积极参与国际竞争和合作,与全球众多知名企业建立了长期稳定的合作关系。这些举措不仅提升了TDK-EPC公司的品牌影响力和市场竞争力,也为公司的长期发展提供了有力保障。

FUJITSU(富士通)公司的发展小趣事

在国际化布局方面,TDK-EPC公司始终保持着积极开放的态度。公司通过设立海外研发中心、生产基地和销售网络等方式,不断拓展国际市场。同时,公司还积极参与国际竞争和合作,与全球众多知名企业建立了长期稳定的合作关系。这些举措不仅提升了TDK-EPC公司的品牌影响力和市场竞争力,也为公司的长期发展提供了有力保障。

FLIR公司的发展小趣事

随着业务规模的不断扩大,FLIR逐渐将目光投向全球市场。公司在全球范围内建立了多个生产基地和销售服务网络,包括在美国本土的波特兰、波士顿、圣巴巴拉和波兹曼等城市设立的工厂,以及在瑞典斯德哥尔摩和爱沙尼亚塔林等海外地区设立的分支机构。这些生产基地和销售服务网络为FLIR在全球市场的拓展提供了有力支持,使得公司能够更好地服务于全球客户,满足他们多样化的需求。

问答坊 | AI 解惑

新手请教:电容问题

今天我买了两个晶振电容:两个都是50V  10uf(微发)的,这两个是否合适做12M的晶振电容? 我怎么看到书上写的适合用20pf的电容? 另外请问电容上显示的50V是什么意思? 谢谢!…

查看全部问答>

帮分析个简单的程序。。实在扛不住弄出来了

用定时器1做的简单输出,友善micro2440的板子 请帮我分析下,搞了好长时间,还是出不来 流驱动:#include \"options.h\" #include #include #include #include #include #include #include #include #include \"time.h\"  ...…

查看全部问答>

请教SD卡读写的问题

  我在2440的开发板上使用SD卡用作U盘,在我的电脑上可以看到 ,也可以读写文件,但经常写一部分就出错,比如同时写200多个文件,写了几十个或100多个文件时(已经写进去的文件是好的,可以用读卡器读到),就出现错误。    ...…

查看全部问答>

C语言与单片机C语言(C51)有啥不同?

请问一下各位 学校里学的C语言和单片机C语言(C51)有啥子不一样的?哪个好学一点. 在学校里学了C语言后感觉没有学到啥子,挺浮浅的,现在只记得一些简单的规则和语法。 不知道现在是继续学它基础打扎实点呢,还是就开始学C51,希望大家给点建 ...…

查看全部问答>

wince界面设计问题

请问要设计出这样的界面需要使用什么软件? 这种界面设计使用的什么方法。都是贴的图吗? 那具体设计过程是怎么样的? 好像是先设计整个界面,然后在截图。 …

查看全部问答>

招聘嵌入式开发工程师

岗位描述: 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的问题

最近在调STM8 的I2C(不想搞模拟的I2C),结果I2C没有调通,不知道问题所在,软件是参考I2C EEPROM固件那个程序写的。初始化如下: void IIC_Init(void) { UCHAR temp; CLK_PCKENR1 |= 0x01; I2C_CR1    = 0x00;  &n ...…

查看全部问答>

关于vca810的放大增益

本帖最后由 dontium 于 2015-1-23 12:51 编辑 我这两天用面包板按照vca810芯片的datasheet中的figure2 电路搭建了一个压控放大,将8脚的50欧姆电阻去掉,并在8脚加了一个vpp=30mv,f=800hz的正弦波(函数发生器产生),并在1脚直接接地。但是在Vc= ...…

查看全部问答>