2、激活/CS选择该sram芯片。
3、激活/OE引脚SRAM知道是读取 *** 作。
4、通过地址总线确定要写入信息的位置。
5、通过数据总线将要写入的数据传输到Dout引脚。以上为SRAM读写 *** 作的计算方式。
你这是双向端口出问题了。assign SRAM_Data =(!ctl_we) ? data_cam : 'hz /////写 *** 作
assign data_pc = (!ctl_oe)? SRAM_Data : 'hz /////读 *** 作
这两句话综合出来的是一个错误电路!
对绝对的地址空间进行读写即可。比如STM32自身的SRAM地址空间范围是0x20000000-0xXXXXXXXX(结束地址根据不同型号而不同,比如STM32F103ZET6的SRAM地址空间为0x20000000-0x2000FFFF共64KB),对绝对地址进行访问的C语言代码是:
a = *(u8 *)0x20000000//将地址为0x20000000的一个字节数据读取到变量a中
*(u8 *)0x20000100 = a //将变量a的值放到地址0x20000100处
不过不推荐直接访问绝对地址,因为这样可能会破坏堆栈而导致程序跑乱跑飞等问题的出现。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)