- 博客(4)
- 收藏
- 关注
原创 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
原创 linux shell终端打印彩色字
重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37.#include <stdio.h>#define Perror(info) {printf("\033[31mERR:%s:%d:%s():\033[0m",__FILE__,__LINE__,__func__);printf("\033[35m%s\033[0m\n",info);}i
2015-04-08 15:27:40
430
转载 如何编写高效率稳定的单片机代码
由于单片机的性能同电脑的性能是天渊之别的,无论从空间资源上、内存资源、工作频率,都是无法与之比较的。PC 机编程基本上不用考虑空间的占用、内存的占用的问题,最终目的就是实现功能就可以了。对于单片机来说就截然不同了,一般的单片机的Flash 和Ram 的资源是以KB 来衡量的,可想而知,单片机的资源是少得可怜,为此我们必须想法设法榨尽其所有资源,将它的性能发挥到最佳,程序设计时必须 遵循以下几点进行
2015-04-08 15:12:11
472
原创 关于cortex-m3的单片机出现的HardFault_Handler的调试
出现的原因: 1、堆栈溢出 一、局部变量不要使用太多,尤其是局部大数组,最是杀堆栈的; 二、函数调用纵深不要太大; 三、尽量给堆栈留有余地;2、数组越界 3、非法指针 可以打印堆栈的指针,在将进入中断之前,保存了LR值到堆栈的处正偏移20字节处,即发生错误的下一条指令。我们可以根据lr的值确定错误发生的位置。 在调试模式,打开反汇编窗口,右击菜单选择show disassemble a
2015-04-01 16:21:52
3088
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人