stc
文章平均质量分 84
StrongerSun
虽千里,吾往矣。
展开
-
8051单片机的内核的结构及运行过程解析
一、内核框架1.ROM:只读存储器,单片机的只读存储区大多用于存储程序固又称程序存储器。51单片机是EPROM,所谓的EPROM是可擦除的只读存储器。可以把原来的程序擦除了,再写一个新的进去。断电后是可以保存的,数据存储器(RAM)是不能保存的。RAM只能在程序执行的时候不断地重新存储定义的变量。如int x,int y可以通过code这个指令来将定义的变量放在ROM,而不是RAM中,节省RAM资源2.RAM:随机存取存储器,用于存储定义的变量等,速度快51单片机的RAM存储原创 2021-09-01 00:16:38 · 8062 阅读 · 1 评论 -
一次数据强制转换引起的思考(Mcu大小端模式)
目录一、问题:二、大小端:三、结论:四、解决方案五、常见mcu的大小端一、问题:某次,在对某mcu flash进行操作时,在该地址写入数据 0x12345678用该语句对数据进行读取时,发现读出的数值顺序反了,感觉很奇怪,之后发现可能是数据存储大小端模式的问题。0x78 = *((volatile uint8_t*)(0x00007E00+0))0x56 = *((volatile uint8_t*)(0x00007E00+1))0x34 = *((volat原创 2021-05-22 13:45:59 · 1301 阅读 · 6 评论 -
8,16,32位单片机的区别
目录1、cpu处理的数据宽度2、数据总线宽度3、地址总线宽度4、性能差别1、cpu处理的数据宽度CPU处理的数据的宽度,参与运算的寄存器的数据长度代表单片机的位数。也就是一个一个时钟周期里,处理器处理的二进制代码数。2、数据总线宽度如果数据总线宽度与CPU一次处理的数据宽度不同:1)数据总线宽度小于CPU一次处理的数据宽度,则以CPU处理的数据宽度定义单片机的位数,但称为准多少位。比如著名的Intel 8088,CPU是16位但总线是8位,所以它是准16位。2).原创 2020-11-22 23:28:05 · 8711 阅读 · 0 评论 -
单片机的各种内核
目录一、51内核二 、ARM内核一、51内核51单片机由一个IP核和片上外设组成,IP核就是上图中的CPU,片上外设就是上图中的:时钟电路、SFR和RAM、ROM、定时/计数器、并行I/O口、串行I/O口、中断系统。IP核跟外设之间由系统总线连接,且是8bit的,速度有限。 51内核是上个世纪70年代Intel公司设计的,速度只有12M,外设是IC厂商(STC)在内......原创 2019-12-24 00:34:54 · 16425 阅读 · 4 评论 -
单片机堆栈解析
目录一、堆区(HEAP)二、栈区(STACK)三、堆栈的区别四、内存分配的方式五、堆栈溢出六、总结一、堆区(HEAP)堆区(HEAP):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。在单片机的sram中的ZI-data中。由malloc 系列函数或new 操作符分配的内存。其生命周期由free 或delete 决定。在没有释放之前一直存在,...原创 2019-12-23 21:59:16 · 2977 阅读 · 0 评论 -
STC 模拟eeprom数据丢失
问题:用stc的flash模拟eeprom,发现某些位置的数据会莫名其妙的丢失原因:结果发现flash数据是以页为单位保存的,stc官方的库函数在擦写数据时是将flash整页擦除的,在我写某个字节的数据时,将整个页的数据都擦除了,后面都找不到数据了。解决:在写数据时先将模拟eeprom的数据全部读出来,然后再将数据逐个的写入。#include "main.h"#include &l...原创 2019-09-07 15:07:40 · 1973 阅读 · 0 评论