我想问一下:设备A将数据发到单片机,单片机再将数据转发给设备B时,单片机的ROM是怎样存储数据的,和调用 30
我想问一下:设备A将数据发到单片机,单片机再将数据转发给设备B时,单片机的ROM是怎样存储数据的,和调用数据的(我的理解是:单片机得到的数据是放到ROM里的,但怎样才能及...
我想问一下:设备A将数据发到单片机,单片机再将数据转发给设备B时,单片机的ROM是怎样存储数据的,和调用数据的(我的理解是:单片机得到的数据是放到ROM里的,但怎样才能及时取走呢?不然会不会将数据覆盖掉啊?单片机转发数据给B时为什么不要指定存储器的地址啊?直接可以将SBUF=WORD呢)
关于ROM这个问题我知道了,谢谢!但是:
1、单片机得到的数据是放到RAM里的,但怎样才能及时取走呢?不然会不会将数据覆盖掉啊
2、我看到的程序为什么单片机转发数据给B时不要指定存储器的地址啊,它只是将接受到的数据word赋值给sbuf,SBUF=WORD,而没有指明存储器地址啊
各位大侠帮帮忙啊!小弟感谢不尽,问题解决了分数会统统献上啊 展开
关于ROM这个问题我知道了,谢谢!但是:
1、单片机得到的数据是放到RAM里的,但怎样才能及时取走呢?不然会不会将数据覆盖掉啊
2、我看到的程序为什么单片机转发数据给B时不要指定存储器的地址啊,它只是将接受到的数据word赋值给sbuf,SBUF=WORD,而没有指明存储器地址啊
各位大侠帮帮忙啊!小弟感谢不尽,问题解决了分数会统统献上啊 展开
展开全部
一般的单片机内部的ROM是不能在运行时写入的。我建议还是将数据存储到单片机片外的不可挥发的存储器,例如EEPROM或者FLASH什么的。普通的单片机运行时申请的变量在RAM空间中。
一般单片机ROM的存储需要特殊的流程和工作状态。
ROM的调用地址在一般的单片机中就是PC寄存器中的数值(其实就是下一条指令的地址)
我觉得楼下回答的基本上很到位。你对ROM理解的有偏差。
如果你是要转发数据,这些数据只会存在RAM里,而且没必要写到ROM中去。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
存在RAM里的数据是你写程序时候开辟的存储空间,除非你的程序对其操作,否则在你掉电前不会丢失的(内存物理损坏不计在内。)
从你的问题我猜测你是要从某个端口的寄存器里面读取数据,这个和RAM内存是不一样的。一些单片机的通讯寄存器有FIFO(一种缓冲的技术)使得在单片机可以替你存一些数据,往往是几个比特位,而如果你的程序没有及时取走这些数据的确会被覆盖。这个数据覆盖和RAM的覆盖是完全不一样的。具体的操作你还要再多读读单片机的用户手册。
一般单片机ROM的存储需要特殊的流程和工作状态。
ROM的调用地址在一般的单片机中就是PC寄存器中的数值(其实就是下一条指令的地址)
我觉得楼下回答的基本上很到位。你对ROM理解的有偏差。
如果你是要转发数据,这些数据只会存在RAM里,而且没必要写到ROM中去。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
存在RAM里的数据是你写程序时候开辟的存储空间,除非你的程序对其操作,否则在你掉电前不会丢失的(内存物理损坏不计在内。)
从你的问题我猜测你是要从某个端口的寄存器里面读取数据,这个和RAM内存是不一样的。一些单片机的通讯寄存器有FIFO(一种缓冲的技术)使得在单片机可以替你存一些数据,往往是几个比特位,而如果你的程序没有及时取走这些数据的确会被覆盖。这个数据覆盖和RAM的覆盖是完全不一样的。具体的操作你还要再多读读单片机的用户手册。
展开全部
1、ROM是由PD口控制的吧,高电平就是封锁,低电平就是读取。不取走的话,在满栈之前可以存,满了会出错。
2、sbuf就是一个存储器的代码啊,本身地址就是固定的99H吧
好久没玩单片机了,大概是这样子。
2、sbuf就是一个存储器的代码啊,本身地址就是固定的99H吧
好久没玩单片机了,大概是这样子。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据肯定会被覆盖 所以一般在下次传来之前就要取走 取走就是把数据赋给其他的寄存器就可以了 如果不需要保存的话可以直接赋给其他端口传出去
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果用串口通信,有个BUFF寄存器,相当于缓冲区,发送的时候把BUFF的数据发出去,接收的时候把数据送入BUFF,如果其他通信,如和EEPROM,需要指明地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询