stm32
文章平均质量分 73
qq_17231595
这个作者很懒,什么都没留下…
展开
-
关于cortex-m3的单片机出现的HardFault_Handler的调试
出现的原因: 1、堆栈溢出 一、局部变量不要使用太多,尤其是局部大数组,最是杀堆栈的; 二、函数调用纵深不要太大; 三、尽量给堆栈留有余地;2、数组越界 3、非法指针 可以打印堆栈的指针,在将进入中断之前,保存了LR值到堆栈的处正偏移20字节处,即发生错误的下一条指令。我们可以根据lr的值确定错误发生的位置。 在调试模式,打开反汇编窗口,右击菜单选择show disassemble a原创 2015-04-01 16:21:52 · 3088 阅读 · 0 评论 -
如何编写高效率稳定的单片机代码
由于单片机的性能同电脑的性能是天渊之别的,无论从空间资源上、内存资源、工作频率,都是无法与之比较的。PC 机编程基本上不用考虑空间的占用、内存的占用的问题,最终目的就是实现功能就可以了。对于单片机来说就截然不同了,一般的单片机的Flash 和Ram 的资源是以KB 来衡量的,可想而知,单片机的资源是少得可怜,为此我们必须想法设法榨尽其所有资源,将它的性能发挥到最佳,程序设计时必须 遵循以下几点进行转载 2015-04-08 15:12:11 · 472 阅读 · 0 评论 -
stm32串口DMA收发,可以接收不定长数据,格式化输出。
这个程序同时初始化了五个串口,前四个串口具有dma,所以均采用DMA接收和发送,并提供了格式化输出的类似printf的接口,可以接收未知长度的数据,但是收发字节数UART_RECV_BUF_MAX_LEN 和UART_SEND_BUF_MAX_LEN有关 ,和串口5没有用于485通信。 //usrt.h#ifndef _USART_H #define _USART_H #includ原创 2015-04-14 11:02:21 · 2700 阅读 · 0 评论