跳转到主要内容

STM32四种库对比:寄存器、标准外设库、HAL、LL

cathy 提交于

1.我是选择寄存器开发STM32,还是标准外设库呢?
2.你有STM32L0标准外设库吗?
3.HAL库和LL库有什么差异?

下面就来讲讲开发STM32的四种库:
<ul>
<li><strong>STM32Snippets</strong></li>
<li><strong>Standard Peripheral Library</strong></li>
<li><strong>STM32Cube LL</strong></li>
<li><strong>STM32Cube <strong>HA</strong>L</strong></li>
</ul>

<strong><font color="#004a85">1、STM32Snippets</font> </strong>

意法半导体携手施耐德电气,揭秘基于STM32 MCU的AI人流量监测解决方案

winniewei /

横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM) 与能源管理和工业自动化数字化转型的市场领导者施耐德电气 (Schneider Electric)联合推出一款物联网传感器原型。通过监测建筑物的居住率和使用率,该解决方案可以实现新型物业管理服务,提高楼宇的能源管理效率。

福利来一波!STM32 Nucleo-64开发板免费送,幸运锦鲤就是你!

cathy /

在上一次Freescale DKKL46开发套件免费送的活动中,我们抽出了3名幸运儿并获得我们的开发套件,你是其中的一位吗?

不是?没关系,说不定这次的好运锦鲤就是你哦!

<center>芯快递联合贸泽工程师社区
又来为大家带来福利啦!
一起来看看是什么吧</center>

这次的福利活动,我们将送出的好礼是采用带有STM32L053R8 MCU的STM32 Nucleo开发板,,支持Arduino和ST morpho连接。先上几张图让大家一饱眼福吧!

STM32编程:是时候深入理解栈了

cathy 提交于

为什么要深入理解栈?做C语言开发如果栈设置不合理或者使用不对,栈就会溢出,溢出就会遇到无法预测乱飞现象。所以对栈的深入理解是非常重要的。

注:动画如果看不清楚可以电脑看更清晰。

<strong>啥是栈</strong>

先来看一段动画:

<center><iframe frameborder="0" width="80%" height="420" src="https://v.qq.com/iframe/player.html?vid=h3138o8458g&quot; allowfullscreen></iframe></center>

没有比这个更直观的啦,栈是一种受限的数据结构模型,其数据总是只能在顶部追加,利用一个指针进行索引,顶端叫栈顶,相对的一端底部称为栈底。栈是一种LIFO后入先出的数据结构。

栈就两种操作:

窗口看门狗是什么?与独立看门狗的区别?

cathy /

STM32有两个看门狗,独立看门狗和窗口看门狗。其实两者的功能是类似的,只是喂狗的限制时间不同。

<strong>窗口看门狗</strong>

窗口看门狗,之所以称为窗口,是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。喂狗的时间不能过早也不能过晚。

<center><img src="http://mouser.eetrend.com/files/2020-08/wen_zhang_/100051283-104732-1.j…; alt=“图1 窗口型看门狗”></center><center><i>图1 窗口型看门狗</i></center>

窗口看门狗的上窗口就是配置寄存器WWDG->CFR里设定的W[6:0];下窗口是固定的0x40;当窗口看门狗的计数器在上窗口值之外,或是低于下窗口值都会产生复位。

如何让STM32优雅地“说”hello world?

cathy 提交于

<strong>01、前言</strong>

STM32上hello world,说白了就是使用串口向PC上的上位机软件或者串口调试助手发送字符串。

串口的使用方法百度一下就能知道了,简单来说就是下面这样。

<pre>uint8_t buff[BUFF_SIZE];//定义一个缓存数组

HAL_UART_Receive_IT(&huart1, (uint8_t *)buff, BUFF_SIZE);//打开串口接收中断</pre>

串口中断打开之后,当接收到BUFF_SIZE个数据后就会进入

<pre>void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);</pre>

然后我们就可以在上面这个函数下操作收到的数据啦,简单方便快捷。当然实际操作一遍后大家就会发现,这个程序只能进入一次中断,之后就再也收不到数据了,这是因为HAL库在每次进入串口中断时都会把这个中断关闭,所以我们处理完数据之后,要重新打开中断。

STM32学习笔记 | SPI通信异常分析

cathy 提交于

SPI,全称为 Serial Peripheral Interface(串行外设接口),是一种用于短距离通信的同步串行通信接口,主要应用在嵌入式系统。

这是第二篇分享,《STM32学习笔记》之SPI通信常见问题分析。

SPI的应用场合很广,显示模组、时钟芯片、存储芯片、温度传感器等众多器件都有使用SPI接口通信。这些器件通常作为从设备,STM32作为主设备来控制它们。

<strong>STM32 SPI基础内容</strong>

绝大部分STM32芯片都有多个SPI外设,它可与外部SPI器件进行半双工/全双工同步串行通信。

<strong>1. SPI特性</strong>

STM32学习笔记 | 电源管理及低功耗设计要点

cathy 提交于

一款好的电子产品,都需要认真考虑电源管理的问题,电池供电的产品更应该注意低功耗的实现。

<strong>STM32电源介绍</strong>

每一块STM32芯片中都有一个电源控制器(PWR),不同系列的STM32有相似,也有差异。

<strong>1.电压</strong>

绝大部分STM32的电压要求介于 1.8 V 到 3.6 V 之间,嵌入式线性调压器用于提供内部 1.2 V 数字电源。

<strong>2.类型</strong>

STM32的电源通常分为三类:数字电源、模拟电源、备份电源。

数字电源:VDD也是其主电源,主要用于数字部分;

模拟电源:VDDA用于模拟部分的电源,比如ADC,这样可以单独滤波并屏蔽 PCB 上的噪声。

备份电源:VBAT用于备份区域的电源,比如RTC、备份SRAM等,一旦主电源断开,VBAT可以为这些区域提供电源。

STM32延时函数的四种方法:普通延时(2种)、SysTick 定时器延时(2种)

cathy 提交于

单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ms( )。

1.普通延时法

(1)普通延时法1

这个比较简单,让单片机做一些无关紧要的工作来打发时间,经常用循环来实现,不过要做的比较精准还是要下一番功夫。下面的代码是在网上搜到的,经测试延时比较精准。

<center><img src="http://mouser.eetrend.com/files/2020-03/博客/100048274-92852-1.png&quot; alt=“” ></center>

(2)普通延时法2

STM32