![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32应用
文章平均质量分 73
狂奔吧小蜗牛
这个作者很懒,什么都没留下…
展开
-
KEIL MDK使用malloc申请堆空间注意事项
项目场景:最近有个案子(MCU:STM32F103VCT6)需要定制个小功能,需要用malloc分配大量的空间。本来是没什么,但是无意中发现,KEIL MDK编译时,malloc分配的空间已经超过预设的大小也不报错。后面发现和自己的使用也有关系。在这边记录一下,给有碰到类似问题的网友们一些参考。问题描述:先看启动文件。这里堆分配的大小是0x2000,即8K。Heap_Size EQU 0x00002000 AREA HEAP, NOINIT原创 2021-01-17 16:25:05 · 3727 阅读 · 2 评论 -
STM32串口输出异常和printf重定向
使用场景:今天在调试STM32F1项目的时候,碰到一个有点意思的小问题。想着新建个工程,把要测试的函数直接移植到新的工程独立做测试。通过串口来输出信息查看。结果发现串口接收乱码。原因分析:由于STM32的串口我初始化过了,系统外部晶振和倍频系数也改过来。所以能确定不是系统时钟配置错误造成的。那就肯定是串口相关的配置出了问题。这里边就有2种可能:1、串口外设初始化配置出错。(看过参数这边没问题,波特率是配置成115200)2、printf没有做重定向(估计是这边)。于是把printf重定原创 2020-12-30 21:07:58 · 3718 阅读 · 0 评论 -
巧用STM32 硬件错误函数HardFault_Handler调试和保护系统
巧用STM32 硬件错误函数HardFaultException调试和保护系统我们在使用STM32的前期调试系统的过程中,可能会由于逻辑出错,造成系统进入硬件错误中断HardFaultException。比如越界访问、指针异常以及别的原因,造成MCU进入异常中断。我们此时可以利用这个中断来进行调试,甚至是做保护。具体使用:STM32 的启动文件里,有“硬件错误中断函数”。当我们不确定写的程序是否正确,并已经发生硬件错误时。只要实现“硬件错误中断函数”的具体内容,可以在里面输出你所需要检测的变原创 2020-12-19 22:35:37 · 1406 阅读 · 0 评论 -
使用STM32内部HSI (内部RC振荡)作为系统时钟
使用STM32内部HSI (内部RC振荡)作为系统时钟在实际应用中,有时候为了节约成本,我们会能省则省,特别是当项目对成本比较敏感的时候。本文介绍的就是如何使用内部RC时钟(HSI)作为时钟源,并且倍频到48M作为系统时钟。 这样就能不依赖外部时钟。实际案例是通过宏定义来切换,既可以使用外部8M晶振来倍频到72M;也可以使用内部的HSI倍频到48M。一、源码配置1、直接进入正文,我们在文件里定义了两个“宏”,用来切换时钟配置是选内部低速HSI还是外部高速HSE。代码如下(示例):#define原创 2020-12-09 08:47:37 · 5611 阅读 · 0 评论