如何对外扩SRAM进行读写
来源:宇芯有限公司 日期:2020-02-20 10:58:13
如何对SRAM进行读写
使用指针的方法进行读写
不需要写读写函数,可以直接使用指针的方式对STM32的内存地址进行访问。
#defeine SRAM_BASE_ADDR (0x68000000) //基地址从0x68000000开始
#define SRAM_SIZE (1*1024*1024) //一共有1M字节
#define SRAM_END_ADDR (SRAM_BASE_ADDR + SRAM_SIZE) //SRAM结束的地址
//用#define定义宏的时候用括号是个习惯,防止以后如果有运算的时候会影响宏的运算法则。
(2)定义指针,操作单字节数据
u8 *p;
p = (u8 *)SRAM_BASE_ADDR; //把数据SRAM_BASE_ADDR强制转换成指针
*p = 0xAB; //向0x68000000地址写入0xAB
如何操作双字节数据
先定义一个16位的指针
u16 *p16;
p = (u16 *)SRAM_BASE_ADDR; //把数据SRAM_BASE_ADDR强制转换成16位指针
*p16 = 0xCDEF; //一次可以操作2个字节
如何操作浮点数
定义一个指向浮点数的指针
float *pf;
p = (float *)SRAM_BASE_ADDR; //把数据SRAM_BASE_ADDR强制转换成指向浮点数的指针
*pf = 56.35;
使用绝对地址的方式访问SRAM
u8 testValue __attribute__ ( (at (SRAM_BASE_ADDR ) ) );
把变量testValue的地址定义到0x68000000
testValue = 50;
注意:使用 __attribute__定义变量时必须定义为全局变量
否则如果使用局部变量,变量还是会被定义在内部RAM中。
关键词:SRAM
相关文章:
可穿戴电子设备中的SRAM
宇芯有限公司自成立以来,我们专注于代理国内外各大知名品牌的半导体元器件,代理品牌有NETSOL、JSC、everspin、来杨Lyontek、ISSI、CYPRESS等多个品牌总代理资质,主要产品线为sram、mram、psram等其他存储器芯片,致力于为客户提供具有竞争优势的产品,是一家专业提供存储方案解决商。