STM32学习专栏
文章平均质量分 57
STM32F103系列和STM32L051系列等知识汇总。
老黑2023
工程师。
展开
-
一文帮你彻底搞懂ARM Debug Interface之SWD(转)
ARM的文档写的已经很好了,但是关于上电以后的第一时间应该怎么操作,依然写的不够清晰,导致我第一次用的时候还是费了一些周折。今天做一个详细的梳理,希望能够帮助到更多的朋友。BTW, ARM_Cortex-M0/3 DesignStart系列会持续更新,只是中间可能会穿插其他知识点。SWD是Serial Wire Debug的简称,翻译成中文是”串行线调试”。原创 2024-01-29 13:57:45 · 1294 阅读 · 0 评论 -
嵌入式学习笔记之--ROM、RAM、DRAM、SRAM和FLASH的概念解析 - 全文(转)
由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。PSRAM容量有8Mbit,16Mbit,32Mbit等等,容量没有SDRAM那样密度高,但肯定是比SRAM的容量要高很多的,速度支持突发模式,并不是很慢,Hynix,Coremagic, WINBOND .MICRON. CY等厂家都有供应,价格只比相同容量的SDRAM稍贵一点点,比SRAM便宜很多。分不清NOR和NAND闪存。原创 2024-01-29 13:54:44 · 932 阅读 · 0 评论 -
RSL10读取Flash数据方法
从以上对照可以知道:Flash是按字读出,即每次读出是4个字节,而且在Flash中的4个字节是高字节在后,低字节在前面。比如0x12345678,在flash中的依次存储内容为:0x78 0x56 0x34 0x12,也就是所谓的小端存储模式。5.把从J-Flash读取函数烧录的代码与从J-Link RTT Viewer中查看打印输出内容做对照。2.从Main Flash中读取4k数据并存入PRAM2后打印的程序。3.从J-Flash读取函数烧录的代码。1.RSL10的ROM MAP图。原创 2023-12-06 09:18:43 · 92 阅读 · 0 评论 -
关于用ST-Link烧录STM32L051程序碰到的问题和解决方法
6.把SWD烧写频率改为100kHz(改为480kHz也可以)4.点确定后打开配置setting。经验分享,欢迎讨论留言。原创 2023-11-21 13:34:02 · 211 阅读 · 0 评论 -
串行外设接口 (SPI) 的基础知识
对于每个时钟周期,一位数据从主机传输到从机,一位数据从从机传输到主机。在这种类型的接口中,一个设备被视为总线的主设备(通常是微控制器),而所有其他设备(外围 IC 甚至其他微控制器)被视为从设备。在独立从配置中,主设备为所有从设备提供专用的从设备选择线,每个从设备都可以单独选择。同理,所有从机的所有 MOSI 管脚都连接到主机的 MOSI 管脚,所有从机的所有 MISO 管脚都连接到主机的 MISO 管脚。我们已经看到,主设备的工作是生成时钟信号并将其分配给从设备,以便在主设备和从设备之间同步数据。原创 2023-11-08 22:15:37 · 135 阅读 · 0 评论 -
用STlink烧录工具和搭配STM32 ST-LINK Utility软件烧录STM32L051的方法
若目标板之前已经有烧录进睡眠程序,可以在给目标板上电的瞬间进行连接烧录,利用这个时间差。因为上电后的,目标板不会马上进入睡眠状态,此时可以正常连接和烧录,若进入睡眠状态后就无法连接了。这也提醒我们,在写带低功耗睡眠的程序时,在上电后最好进行3秒左右的延时再进入睡眠,以给后续的程序更新烧录有足够的反应时间。用STlink烧录工具和搭配STM32 ST-LINK Utility软件烧录STM32L051的方法。ST link与目标板连接的三根线要对应上:SWCLK,SWDIO,GND,并确保给目标板供电。原创 2023-11-01 10:09:06 · 3594 阅读 · 0 评论 -
C语言丨关键字enum用法详解,看这篇就够了
enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值,typeName是枚举类型的名字,花括号里面的元素(枚举成员)是常量而不是变量,这个一定要搞清楚,因为枚举成员的是常量,所以不能对它们赋值,只能将它们的值赋给其他的变量。枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。原创 2023-10-31 16:42:59 · 1848 阅读 · 0 评论 -
c语言中enum类型的用法!
在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。或者为: enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c;应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。说明: 只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。这些值也称为枚举元素。枚举类型的定义和枚举变量的说明。原创 2023-10-31 16:30:53 · 542 阅读 · 0 评论 -
C语言-状态机模式
它使用C的指定初始化功能,将函数指针映射到枚举值,这样,state_handlers数组就像一个映射表,我们可以通过状态值STATE_OFF, STATE_ON等作为索引,得到对应的处理函数指针。例如,state_handlers[STATE_OFF]就会返回off_handler函数指针,我们可以调用该指针来执行off_handler函数。函数指针数组加强了代码的灵活性,让状态转换的逻辑变得非常简洁。1.假设我们的交通信号灯控制器有以下三个状态:绿灯状态、黄灯状态和红灯状态。现在系统处在什么状态?原创 2023-10-31 16:24:33 · 63 阅读 · 0 评论 -
C语言条件判断输出的程序用这种方法不错
如果心率测量值小于或等于255 bpm*应使用UINT8格式以节省电源。原创 2023-10-19 08:50:42 · 44 阅读 · 1 评论 -
UART和SPI通信速度比较
考虑UART vs SPI速度,从两个协议的短距离发送数据的最快通信协议是SPI。要在更远的距离发送数据,必须降低时钟速度并合并专门的驱动芯片。速度是通信协议中最重要的特征之一,UART和速度之间有很多区别。SPI协议比UART要快得多。UART以比SPI更低的数据速率在设备之间传输串行数据。由于异步通信类型,相互通信的UART设备的数据速率必须相等。除此之外,UART和SPI在速度、连接的设备数量、引脚数量、大小和同步等方面都存在差异。与UART相比,对于SPI接口没有指定的数据速率限制。原创 2023-10-18 09:54:32 · 1006 阅读 · 1 评论 -
Keil如何修改工程名称?
1.在工程文件目录中,将first.uvopt和first.uvproj名字改成second.uvopt和second.uvproj。原文地址: http://blog.csdn.net/bdhk6688/article/details/49330821。4.点击品字形图标,在弹出的界面上,双击“Progect Components”下面的工程名,修改成second。6.重新编译,若编译后还有带first名的文件,删除后重新编译即可。假设原来的工程文件名是first,要改成second。原创 2023-10-17 17:03:13 · 1376 阅读 · 0 评论 -
关于STM32L051的烧录问题
用STM32L051做项目开发,前期用Keil通过STLink调试和烧录都没有问题。同事用JLink烧录,第一次成功烧录进去了,想用JLink再次烧录,就怎么都烧录不进去。然后我把板子拿回来,准备用老方法即用Keil通过STLink烧录,可以找到目标板,但也是怎么都LOAD不进去,总是提示“core in holt by reset”字样。在烧录的时候,有尝试把复位线拉低瞬间烧录,也有尝试通过上电快速连接烧录,都没有成功,不知道什么原因。因为我调试的时候都是这样烧录的,为什么用JLink后就会有这样问题?原创 2023-10-17 14:42:16 · 85 阅读 · 0 评论