![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32
eydwyz
AA123456123456
展开
-
[STemWin]emWin的矢量字体显示要用到malloc函数,那么如何让堆空间使用外部SRAM的解决办法
STM32F103ZET6的RAM空间仅64KB,而矢量字体非常的耗RAM空间,需要大几十KB大小。那么就需要将这部分的空间定义到外部SRAM。emWin的矢量字体显示是通过malloc函数从堆空间申请的。我们需要做的就是将堆空间定义到外部SRAM,设置方法如下:=====================================================设置堆的大小以转载 2017-03-01 15:51:48 · 2395 阅读 · 0 评论 -
再谈STM32的CAN过滤器-bxCAN的过滤器的4种工作模式以及使用方法总结
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]前言准备工作1 为什么要过滤器2 两种过滤模式列表模式与掩码模式3 验证码与屏蔽码4 列表模式与掩码模式的对比5 标准CAN ID与扩展CAN IDbxCAN的过滤器的解决方案应用实例1 工程建立及主体代码2 32位宽的列表模式3 16位宽的列表模式4转载 2017-03-22 15:48:36 · 1268 阅读 · 3 评论 -
解决stm32进入HardFault_Handler的定位办法
1、首先在HardFault_Handler的while(1)处打上断点。2、等待代码运行到此,这时查看寄存器LR,在左边一个是工程,一个是寄存器。上面的LR是我正常时copy的,一般在进入hardfault时,会变成下图的值,这时就可以知道该看那个寄存器的值,当时我那里是0xFFFFFFFD,所以是看PSP的地址。3、找到该看的地址后然后如下图打开内存,输入上转载 2017-05-24 18:50:01 · 5867 阅读 · 0 评论 -
Cortex-M3/4的Hard Fault调试方法
1 Cortex-M3/4的Fault简介 Cortex-M3/4的Fault异常是由于非法的存储器访问(比如访问0地址、写只读存储位置等)和非法的程序行为(比如除以0等)等造成的。常见的4种异常及产生异常的情况如下:Bus Fault:在fetch指令、数据读写、fetch中断向量或中断时存储恢复寄存器栈情况下,检测到内存访问错误则产生Bus Fault。M转载 2017-05-24 18:52:24 · 2042 阅读 · 0 评论 -
HardFault_Handler问题查找方法
收藏评论(0)分享到微博QQ微信LinkedInSTM32出现HardFault_Handler故障的原因主要有两个方面:1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。2、堆栈溢出。增加堆栈的大小。 出现问题时排查的方法:发生异常之后可首先查看LR寄存器中的值,确定当前使用堆栈为M转载 2017-05-24 19:00:38 · 2084 阅读 · 0 评论 -
STM32单片机之ADC学习总结
因为公司的产品上需要使用AD来检测电池电压,要求不是很高,突然想用下DMA+ADC+TIM,以前以为很简单,实际使用中让我觉得很惭愧,遇到的问题让我一下子蒙了,不停的查资料,不停的测试,终于一个一个的问题都解决了,同时对stm32的ADC有了新的认识,并且打算再闲暇时间内将stm32的资源尽量的实践下。我用的是STM32F4 来调试ADC3+DMA+TIM1(单通道),首先我先查看了下DM转载 2017-05-09 18:55:27 · 5418 阅读 · 1 评论 -
STM32如何查看Flash和RAM使用空间以及如何压缩RAM的使用空间
KEIL编译完成后,在Build Output窗口会出现一下信息:Code是代码占用的空间;RO-data是 Read Only 只读常量的大小,如const型;RW-data是(Read Write) 初始化了的可读写变量的大小;ZI-data是(Zero Initialize) 没有初始化的可读写变量的大小。ZI-data不会被算做代码里因为不会被初始化;简单的说就是在烧写...转载 2019-03-31 19:21:29 · 2174 阅读 · 0 评论