- 博客(81)
- 资源 (1)
- 收藏
- 关注
原创 STM32——Program Size: Code=55056 RO-data=2252 RW-data=384 ZI-data=100928
程序代码的大小,是嵌入式系统中非常重要的指标,尤其是在内存空间有限的情况下,必须尽量优化代码的体积。注意: 代码段大小直接影响Flash存储的占用,需确保不超过芯片的Flash容量。注意: RO-data也存储在Flash中,需确保其大小不超过Flash容量。确保这些值不超过芯片的Flash和RAM容量,以避免程序无法正常运行。注意: ZI-data也占用RAM,需确保其大小不超过RAM容量。注意: RW-data占用RAM,需确保其大小不超过RAM容量。包含了程序中可以在运行时修改的静态和全局变量。
2025-02-08 09:04:34
304
原创 C语言——宏定义问题
a=temp;大致是这样,原来的式子是a=temp的相关运算,式子中的运算都转成float类型了,但报警告:单精度操作数隐式转换为双精度,…\HARDWARE\xxxx.c(147): warning: #1035-D: single-precision operand implicitly converted to double-precision#define temp 45.5 使用宏定义,默认为double类型。
2025-02-08 09:04:11
915
原创 C语言——关于float型转为4个字节的格式(利用共用体)
在单片机对外发送的时候我们经常需要将字节拼起来,但是有的数据是浮点型或者double类型,要将其转换为字节形式,方便数据进行校验值计算等操作。
2025-01-07 09:57:42
256
2
原创 STM32——系统滴答定时器(SysTick寄存器详解)
Cortex-M处理器内集成了一个小型的名为SysTick(系统节拍)的定时器,它属于NVIC的一部分,且可以产生 SysTick异常(异常类型#15)。SysTick为简单的向下计数的24位计数器,可以使用处理器时钟或外部参考时钟(通常是片上时钟源)。
2025-01-07 09:49:45
1873
原创 ESP8266 TCP client透传模式配置
TCP client是TCP客户端,在建立TCP连接时一般有服务器和客户端两方。透传是指不做任何数据处理的数据透明传输。
2024-08-21 15:25:58
1486
原创 关于SD NAND的SD模式、SPI模式的初始化(CS创世 SD NAND)
3.发送SD卡命令CMD0-------------------------使在SD卡收到复位命令时,CS为有效电平(低电平),则SD卡切换到SPI模式,进入IDLE状态。6.发送CMD58------------------------对SD2.0版本进一步确认SD卡型号(SDHC为扇区块寻址,普通SD卡为字节寻址)9.发送CMD16-------------------------------------设置SD卡扇区大小(默认为512字节)6.发送CMD3,读取SD卡的RCA(地址),短响应。
2024-08-21 14:23:07
806
原创 如何理解并学会看STM32的总线架构
2.1.9 AHB/APB 总线桥 (APB)借助两个 AHB/APB 总线桥 APB1 和 APB2,可在 AHB 总线与两个 APB 总线之间实现完全同步的连接,从而灵活选择外设频率。有关 APB1 和 APB2 最大频率的详细信息,请参见器件数据手册;有关 AHB 和 APB 外设地址映射的信息每次芯片复位后,所有外设时钟都被关闭(SRAM 和 Flash 接口除外)。使用外设前,必须 在 RCC_AHBxENR 或 RCC_APBxENR 寄存器中使能其时钟。
2024-07-23 10:55:55
1196
原创 单片机上搭配的SPI NOR FLASH容量告急!扩容新选择
NOR FLASH 是市场上两种主要的非易失闪存技术之一。Intel于1988年首先开发出NOR Flash 技术(实际上是东芝的富士雄率先开发出来的),彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。
2024-07-23 10:47:25
77
原创 程序debug模式下正常运行,退出debug模式数据出错/不能正常运行,解决办法
调试的时候,要程序装载,本身板子上一直有电的,然后这时候再装载程序,那么它是是相对来说这个时间是比较宽裕的,但是你要是不在调试状态,直接断电再上电,那很多的时候它是上电,这个电源还没就稳定,你的程序就开始跑开了,比如这个电源还没稳定,你的程序已经跑到while(1)里边儿去了,那很多时候这个芯片儿就初始化,就没初始化好。debug模式下值都是正确的,分步调试和debug模式下运行程序都是正常的,退出debug模式,单独上电运行程序,发现数据输出有误。我是32板子外接传感器,要求上电输出并且进行数据处理。
2024-06-06 16:18:16
1456
原创 程序卡在 B.处什么原因?如何处理?(串口配置无问题,重写putc无问题,但不打印)
B处一般是中断配制出错的问题检查之后没有出错可以看看是不是systick_handler是不是初始化了本篇文章仅供解决问题参考。
2024-05-29 14:35:41
553
原创 STM32——启动文件选择及启动文件宏定义
一般在下载标准库的时候这个文件夹里面放了一个readme17.标准库\F1标准库\STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template\MDK-ARM打开readme,如图所示的就是#define的宏定义。填到本文章第一张图示的地方即可。
2024-05-29 11:38:05
1552
原创 单片机——ISP下载、ICP下载、IAP下载
System memory是STM32在出厂时,由ST在这个区域内部预置了一段BootLoader, 也就是我们常说的ISP程序 ,这是一块ROM,出厂后无法修改。升级的过程,将新的代码写入,有两种情况,一种是覆盖原本运行的APP区,一种是添加新的区域。IAP是MCU在系统中获取代码并对自己重新编程,即用程序来改变程序。使用的是SWD/JTAG接口,在keil软件中配置debug。在线系统编程,使用引导程序加上外围UART/SPI接口烧录。其本质是将程序的hex文件烧录到板子里的过程。
2024-02-08 15:27:07
1601
1
原创 周总结2024-02-08
东西太琐碎,先记录再整理比直接写发布要有逻辑,有侧重点等等之前是把东西都记录在电子文档中,然后直接发布的,但是记忆的很少,因为总是打了字就忘记了,上个月的学习主要是把东西记录在纸上,自己手写记录的时候会更有逻辑一点,再回看复习也比较清晰,电子文档固然方便,但是大多不思考,或者思考后就copy了,不能够加深印象东西太浅,经验不够丰富,内容也不够优秀。
2024-02-08 08:50:40
461
原创 单片机——FLASH(2)
但是在HAL库中并没有这一步,知识对flash区域上锁,解锁,HAL库函数有对标志位清除这一项,但是数据缓存标志禁止未提及。flash写数据时,对闪存的任何操作都会锁住总线,这里锁住总线的锁定机制来控制访问点共享资源,有设备要访问资源,会在总线上设置一个锁定的状态,表示正在访问此资源,其他设备访问就会阻塞,直到被释放标志。最后提一下,底层访问通讯总线都要有加锁过程,CPU与内存通讯时,有地址总线,总线的宽带意味着每次通讯读写的字节数。另外,在控制寄存器FLASH_CR的时候,PSIZE的配置。
2024-02-07 17:06:28
1229
原创 STM32——FLASH(1)简单介绍、分类、读写流程及注意事项
1、在擦写的过程中可以不用关闭中断,现在的单片机中有stall行为,可以看一下手册或者搜索,在擦除的过程中,是不会进行读取FLASH 操作的,简单来说擦写是互斥的。2、当单片机中有2个以上的FLASH bank ,中断向量表在一个bank中,擦写其他bank的时候,中断响应是不受影响的。3、flash写入的时候的限制条件:写入时的起始地址必须是4的倍数,必须在合法的写入地址内。3、存储单元:分为块、页、byte、与硬盘的扇区相同。对于flash的数据,都支持1、2、4字节的写入。4、可进行10万次擦写。
2024-02-07 10:01:01
1916
原创 问题汇总20240206——角度随机游走、字符与字节、SWaP、跨平台通讯问题、#park
一般都是按照对齐字节,如果在#park期间字节数大于对齐字节,则大于字节的定义还按照原来的大小,具体这篇文章有示例。降低:温度稳定、校准、误差补偿、数据滤波(卡尔曼)降低环境因素带来的干扰,例如振动或噪声。Size、Weight、and Power的缩写,在IMU中常指:大小、重量、和功耗。强制按照某字节对齐,且发送前转换大小端。ASCII、UTF-8:1字符=1字节=8bits。UTF-16:1字符=2字节=16bits。UTF-32:1字符=4字节=32bits。字符:字母、数字、文本、标点等。
2024-02-07 09:21:48
1154
原创 问题汇总20231208
它是由多个锁存器组成的存储器件,可以存储多个位的数据,并提供一些特定的操作功能,如读取、写入、移位等。这意味着如果返回值的位数超过了函数定义的返回类型的位数,编译器会将返回值自动扩展到更大的数据类型,而不会截断数据。简而言之,锁存器是一种基本的存储器件,用于存储和保持数据的状态,而寄存器是由多个锁存器组成的存储器件,提供更高级的数据存储和处理功能。与OTP存储器相比,MTP存储器可能在可编程次数上有一定的限制,因此在设计和使用过程中需要考虑擦除和编程次数的限制,以确保数据的可靠性和存储器的寿命。
2023-12-11 15:06:20
1215
转载 单片机数字滤波算法
单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。
2023-12-05 13:50:10
267
原创 问题汇总20231201
石英音叉陀螺具有较高的精度和稳定性,但由于其较高的成本和较大的体积,通常用于一些高精度导航系统和工业应用,而不是大规模消费电子产品。对于某些特定的应用或特定的芯片,可能需要手动选择擦除整个芯片或其他擦除选项,以满足特定的需求。因此,在使用Keil软件进行下载时,您应该根据自己的需求和芯片的特性来选择适当的擦除选项。在Keil软件的下载设置中,“Erase Full Chip”、"Erase Sectors"和"Do Not Erase"是三个不同的选项,用于指定下载程序时是否擦除芯片或扇区的内容。
2023-12-01 09:17:33
1300
原创 问题汇总20231124
回溯栈(backtrace stack)是一个用于跟踪函数调用栈的数据结构。它在程序运行时记录了函数的调用关系,可以用于识别程序中的错误或异常情况。当程序执行时,每当一个函数被调用,其相关的信息(如函数地址、函数参数、返回地址等)会被保存在回溯栈中的栈帧(stack frame)中。栈帧包含了函数的局部变量、函数返回地址以及其他与函数调用相关的信息。当程序遇到错误或异常时,可以利用回溯栈来进行调试和错误定位。通过分析回溯栈中的栈帧,可以追踪函数的调用路径,了解程序执行到错误发生时的上下文信息。
2023-11-24 15:28:55
1064
原创 STM32——外部中断
当我们调用 HAL_GPIO_Init 设置 IO 的 Mode 值为 GPIO_MODE_IT_RISING(外部中断上 升 沿 触 发 ), GPIO_MODE_IT_FALLING ( 外 部 中 断 下 降 沿 触 发 ) 或 者 GPIO_MODE_IT_RISING_FALLING(外部中断双边沿触发)的时候,该函数内部会通过判断 Mode 的值来开启 SYSCFG 时钟,并且设置 IO 口和中断线的映射关系。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。中断服务函数的名字是。
2023-11-23 17:42:09
1048
原创 STM32——独立看门狗
看门狗(Watchdog)是一种用于提高系统可靠性的硬件或软件机制。它的作用是监控系统的运行状态,并在系统出现故障或停止响应时采取相应的措施,如复位系统或执行预定义的异常处理程序。
2023-11-23 17:37:01
1132
原创 STM32——STM32Cubemx的学习使用总结
STM32CubeMX是一个图形化工具,可以非常容易地配置STM32微控制器和微处理器,以及为Arm@Cortex@-M 内核或部分 Linux@ 设备树生成相应的初始化C代码,用于Arm@Cortex@-A内 核。第一步包括选择意法半导体STM32 微控制器、微处理器或与所需外设相匹配的开发平台,或在特定开发平台上运行的示例。对于微处理器,第二步允许配置整个系统的 gpio 和时钟设置,并以交式地方式将外设分配到Arm@Cortex-M或Cortex-A系列。
2023-11-20 17:16:58
2695
原创 问题汇总20231103
本篇为新专栏,是我的日常中,自己开发和学习中遇到的疑问,以及在各种嵌入式群中收到小白的疑问或大佬的讨论问题的一个汇总专栏,平时遇到的问题层出不穷,这次找到了下次就找不到了,下次遇见还要再搜,为了避免这种低效率解决问题,我们尽量不犯相同的问题以及对之前的问题进行总结学习,其中有大有小,有需要的可以参考,有错误的尽情指出!内容中有参考博文我会附上原文链接,原博主如有疑问可联系本人删除。
2023-11-16 17:41:25
94
原创 STM32——STM32F103时钟解析(正点原子资料+HAL库代码分析)
上次写系统时钟解析的时候说出一篇103的时钟解析,我就整理HAL库开发的正点的资料,给小白梳理,我也是小白,不做权威使用。
2023-11-16 17:20:37
3927
原创 STM32——SPI通信
SPI是一种串行通信接口,用于在微控制器、传感器、存储器等设备之间进行数据传输。SPI通信通常涉及一个主设备(Master)和一个或多个从设备(Slave),通过共享时钟信号和数据线进行通信。
2023-09-12 11:35:11
3758
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人