JLINK接口定义,JTAG与SWD接口定义
JTAG是标准接口,一般JLINK按照此接口设计,但不排除各种山寨JLINK自己修改了个别接口,请注意。
以下信息来自arm官网,链接是:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0517b/Cjaeccji.html
  [阅读全文]
SDRAM Burst突发传输
Burst Length,即突发长度(简称 BL),通过 A0~A2 设置,是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度。
前面我们说的读/写操作,都是一次对一个存储单元进行寻址,如果要连续读/写就还要对当前存储单元的下一个单元进行寻址,也就是要不断的发送列地址与读/写命令(行地址不变,所以不用再对行寻址)。虽然由于读/写延 [阅读全文]
Keil MDK v5编译速度慢的解决办法
在用MDK5编译STM32F767的HAL库版本程序时候,全新编译一次要好几分钟。
如果想快一点可以在Keil MDK项目选项的Output中取消 Debug Information 和 Browse Information
如下图,这样编译速度你会发现快出一个数量级:)
这种方法缺点就是编译少了两个信息,对应到应用中有各自的作用 [阅读全文]
浅谈单片机应用程序架构
工作中经过摸索实验,总结出单片机大致应用程序的架构有三种:
1. 简单的前后台顺序执行程序,这类写法是大多数人使用的方法,不需用思考程序的具体架构,直接通过执行顺序编写应用程序即可。
2. 时间片轮询法,此方法是介于顺序执行与操作系统之间的一种方法。
3. 操作系统,此法应该是应用程序编写的最高境界。
下面就分别谈谈这三种方法的利弊和适应范围等。
一、 [阅读全文]
Keil MDK编译优化(不编译未使用的函数)
设置选项为: Options-C/C++中勾选上 One ELF Section per Function复选框
它的意义多是,每个函数独自设立建设一个 elf,link时能够仅把须要的函数编译进代码内里。
官方说法:
One ELF Section per Function:
Generate one ELF section for each function in source f [阅读全文]
Keil MDK编译时Code RO-data RW-data ZI-data的含义
KEIL RVMDK编译后的信息
Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116
Code是代码占用的空间,
RO-data是 Read Only 只读常量的大小,如const型,
RW-data是(Read Write) 初始化了的可读写变量的大小,
ZI-data是(Zero Ini [阅读全文]
使用某些USB虚拟串口无法烧录STC单片机的解决办法
例如CP2102和STM32F103做的虚拟CDC串口,就无法烧录STC单片机,原因可能是因为串口给STC单片机供电了,无法断电重启。
解决办法是在串口的TXD 与 STC单片机的RXD之间接一个二极管,二极管正极对单片机,负极对串口端,一般可以解决。
下面有个图可以参考一下:(图片点击可以放大)
[阅读全文]
RS485接口定义(附RS232详细接口定义图)
如果使用的是USB转RS485(或RS232转RS485)标准DB9接头的接口定义如下:
1.T/R+ ------- RS485(A+)
2.T/R- ------- RS485(B-)
3.RXD+
4.RXD-
5.GND ------- 可以不用
6.VCC
[阅读全文]
字节高低位翻转程序效率比拼
RE: inverter byte
#include
unsigned char mr;
unsigned char invertir_byte (mr) {
mr = (mr & 0x0F) > 4;
mr = (mr & 0x33) > 2;
mr = (mr & 0x55) > 1;
return (mr);
}
v [阅读全文]
STC11系列单片机几个问题
STC11系列的P0口在有4.7K上拉的电阻前提下,读ST7032D的数据(状态),读出来的都是错误数据,更换为P1口(无上拉)就没问题.
STC11系列的单片机P3.6在驱动液晶屏的时候,同时利用灌电流驱动了一颗LED灯,结果发现影响液晶屏的驱动,断开LED灯就没问题;或者将LED灯的驱动改为三极管驱动后也没问题,不知道是否LED的灌电 [阅读全文]