![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32
天和地丰
这个作者很懒,什么都没留下…
展开
-
STM32+FREERTOS任务堆栈大小
如何评估任务堆栈的分配大小问题,可以根据任务的规模以及所任务所需的数据空间大概进行估算一个值。这个值最好是128的整数倍。因为在FreeRTOSConfig.h已经设置了最小的任务堆栈大小。在FREERTOS任务开发过程中,由于不知道具体需要分配多大的任务堆栈大小,就需要在开始开发阶段尽可能的多分配一些,不然在调试过程中会出现程序卡死或者数据通信异常的现象。还可以先分配一个大的任务堆栈,开发完成后根据测试的实际任务堆栈使用情况再去优化任务堆栈大小,节省资源。原创 2023-02-23 13:23:23 · 2794 阅读 · 1 评论 -
STM32F407 CAN模块发送接收数据异常
CAN模块通过HAL_CAN_AddTxMessage发送数据时,TX管脚能够发出数据,示波器也可以测量到数据波形,CAN使用中断接收HAL_CAN_ActivateNotification或者查询接收HAL_CAN_GetRxMessage都可以接收到正确的数据(和发送的数据一致),但是CAN接口却没有波形数据发出,使用CAN调试器也无法接收到数据。在接收和发送时都会报错,ESR寄存器的LEC报位显性错误0x5,REC和TEC分别表示接收和发送的错误计数。CAN模块发送和接收都不正常。原创 2022-11-16 08:36:00 · 4751 阅读 · 0 评论 -
stm32 cubeIDE FreeRTOS printf 浮点数打印错误
freeRTOS printf 浮点数错误原创 2022-08-26 10:28:04 · 1351 阅读 · 1 评论 -
CubeIDE 包含路径warning处理
在工程树的Includes下可以看到灰色的有感叹号的对应包含关系。根据自己项目情况选择Debug还是Release。查看项目树下已经不再有刚刚包含的对应路径。查看项目树此包含关系已经不再是灰色了。Debug和Release都不要勾选。此时再次将包含关系从项目中移除。最后再将新建的空文件夹删除即可。将新建的文件夹添加到项目路径。对应目录新建空的文件夹。...原创 2022-07-29 11:15:23 · 1061 阅读 · 0 评论 -
CUBEIDE STM32 HardFault分析
CUBEIDE STM32 HARDFAULT原创 2022-07-15 10:54:29 · 1163 阅读 · 0 评论 -
CUBEIDE编译问题——编译xxx.ld文件失效
CUBEIDE 修改堆栈原创 2022-06-30 13:13:07 · 524 阅读 · 0 评论 -
STM32L476 LPUART波特率问题说明
1、在使用CUBEMX进行STM32L476的LPUART开发时设置波特率出现问题,不能直接设置为9600(强制设置后出现错误),可以设置为115200,由于这两个波特率都是最长用到的参数,因此这个问题必须解决2、在实际使用过程中,发现强制设置成9600时,收发数据也是错误的。查找芯片手册和网络资料,解决这个问题对LPUART的波特率这里有明确的说明,LPUART的时钟不能超过fck must be in the range [3 x baud rate, 4096 x baud原创 2020-11-28 10:42:56 · 2048 阅读 · 1 评论 -
C语言实现大小端数据转换
由于处理器不同以及数据存储方式的不同,造成了再不同平台下数据存在大小端存储的问题。为了保持数据的一致性就要去数据在平台传输、转换过程中要保持相同的大小端数据格式。常用的有16位、32位数据大小端数据转换,STM32中uint32_t 为32位无符号整形数据(unsigned int)。方法1://32位大小端数据转换 #define BSWAP_32(x) \ (uint32_t)((((uint32_t)(x) & 0xff000000) &g...原创 2020-07-10 08:37:26 · 7788 阅读 · 1 评论 -
IAR Get Alternative File 问题和解决办法
问题说明:在进行STM32的FFT运算时,移植了相关的DSP库文件。但是在进行连接仿真器仿真时,提示Get Alternative File问题,点击Skip按键后也不影响运行,但是在操作时很不方便。就想着怎么解决,因为是增加了相关的DSP库才导致的问题,所以肯定和DSP库的移植有关。由于在边缘选项中选择了就以为可以直接包含所需要的响应的库文件了。可是由于自己的IAR集成开发环境不是安装在C盘的默认安装路径,安装在了D盘,导致了这个问题的出现。会提示以下几个问题原创 2020-06-05 09:35:07 · 2927 阅读 · 0 评论 -
使用CUBEMX调试STM32L476的PWM功能
1、打开CUBEMX建立响应的STM32L476工程2、选择相应的MCU控制器3、配置系统晶振4、配置DEBUG接口5、配置定时器的PWM通道6、配置PWM参数和占空比7、配置系统时钟8、配置工程名称和保存路径(不能有中文路径)9、配置工程格式以及库文件包含情况10、生成工程11、在生成的工程中添加开启响应的PWM即可HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);这时通过示波器原创 2020-05-15 16:47:33 · 901 阅读 · 0 评论 -
STM32L4 低功耗STOP模式关闭IWDG功能
1、先建立基于STM32L4的低功耗STOP的例程(可以休眠1分钟) SysTick->CTRL = 0x00;//关闭定时器 SysTick->VAL = 0x00;//清空val,清空定时器 /* Disable all used wakeup source */ HAL_RTCEx_DeactivateWakeUpTimer(&hrtc); HAL...原创 2020-03-24 15:06:39 · 6942 阅读 · 3 评论 -
KEIL/IAR调试STM32L4仿真器不识别
1、在做STM32L4开发调试时遇到了MCU无法识别的问题,新做的电路板,之前一版使用IAR搭配STLINK工作正常(没当回事)。上电第一次连接仿真器就失败了,按照经验按住复位按键(reset)进行连接,依然不成功(开始认真);2、查电路原理图、PCB、电路板都没有发现问题,继续连接测试,依然不成功(开始着急);3、更换仿真器,手头有JLINK,测试---依然不成功(着急中);4、...原创 2019-07-11 14:18:16 · 4302 阅读 · 3 评论 -
BMA250E数据读写问题说明
先看一下BMA250E的datasheet关于温度的说明 0.5K/LSB,0.5K是什么?是凯尔文温度吗?凯式温度和摄氏温度单位换算是相差273.15(摄氏温度=凯式温度-273.15),这显然不正确,正确的应该是0.5度/LSB(经过验证)。再有温度测量范围是-40--85度,按照手册的0X00表示23度,85度是127,超过127的值表示的是什么?经过验证超...原创 2018-11-02 17:22:35 · 1897 阅读 · 1 评论 -
STM32仿真器运行正常,脱离仿真器后无法运行
今天调试STM32的程序时,发现程序在仿真器环境下运行一切OK,但是固化程序后,程序在完成初始化后就不运行了。参照网上一些朋友说的检查复位电路、晶振电路、boot0和boot1管脚电平等等都是正常的。最后发现是由于调试信息引起的:在程序仿真过程中,使用了printf对数据进行打印调试信息,程序运行到printf函数后就不运行了,将调试信息删除后,程序运行正常。希望对大家能有帮助。...原创 2018-11-02 14:10:54 · 13659 阅读 · 8 评论 -
STM32L151 IAP过程记录
研究了2天的STM32系统IAP系统升级,也从网上借鉴了一些资源,这里记录一下也方便大家。1、IAP说明:IAP,虽然网上有很多解释和介绍,我在这里就简单的理解为在线升级或者在系统编程,意思是不通过JTAG仿真器烧录可以更新系统程序。2、准备工作:我所使用的是STM32L151C8T6,电路板有一个串口可以和外部连接,系统资源是64K的FLASH,10K的RAM。这里一定要弄清楚,我由于这...原创 2018-09-03 14:44:25 · 5559 阅读 · 3 评论 -
STM32定时器时钟配置问题说明SystemCoreClock
在研究STM32L476的通用定时器时,遇到了一个关于SystemCoreClock值=4000000U的问题,琢磨了好久,终于弄明白了,这里记录一下。1、定时器初始化函数中2、其中的SystemCoreClock是在system_stm32l4xx.c文件中定义的一个变量3、其实这个值在此处只是一个变量定义时的初始值,系统在时钟初始化时会使用上面的方法3进行更新的。在Syst...原创 2018-08-14 16:10:19 · 17554 阅读 · 5 评论 -
stm32使用SEGGER固化程序提示RAM check failed @ADDRESS 0x2000000问题
今天在使用JLINK搭配SEGGER通过SWD接口固化STM32F103C8程序时,出现RAM check failed @ADDRESS 0x2000000问题,结合网上搜索的各种原因,有说接线问题,有说电源问题,有说复位管脚RESET电平问题,还有说是电路设计的SWD接口走线过长的问题,不排除以上网上各位描述的原因。我的问题最后是通过更新SEGGER版本解决的。以下详细描述问题的解决过...原创 2018-07-24 12:19:12 · 8639 阅读 · 1 评论