通过I2C总线接口让单片机给IC写入指令,现在有一个寄存器地址为0x01,同时该IC内部的RAM地址也为0x01进行写

通过I2C总线接口让单片机给IC写入指令,现在有一个寄存器地址为0x01,同时该IC内部的RAM地址也为0x01进行写,第1张

两个 地址 相同 就用一个 寄存器 保存地址数据就可以了,不相同就要用两个寄存器了。
至于读取数据 和 写入数据,指令是不同的,
不同种类的 存储器 或者 RAM 、ROM 的 读取数据 和 写入数据,指令也是不同的。
只要不同 就是 可以区分的了。

编写串口通讯程序步骤为:

1、设置波特率

2、设置串口工作方式

3、收发数据。

比如:

main()
{
unsigned char dat;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x50;
while(1)
    {
    while(RI==0);
    RI=0;
    dat=SBUF;
    SBUF=~dat;
    while(TI==0)
    TI=0;
    }
}

答:写单片机扩展的程序是比较复杂的,要根据情况来写,这里只针对芯片的地址和数据复制程序给出一个例子:
/ 初始化数据源和目标地址 /
int src_addr = 0x00;
int dest_addr = 0x08;
/ 开始复制数据,从芯片地址0x00读取数据,填入到0x08地址 /
for (int i = 0; i < 8; i++)
{
int temp = ReadFromRegister (src_addr + i);
WriteToRegister (dest_addr + i, temp);
}

比如 unsigned a; a=0x21;a=你要赋予的值
有些指针直接在keil、MDK就已经头文件里定义好了,直接访问即可
arm的这需要访问寄存器,麻烦,不介绍了

单片机 与 单片机 通讯, 直接串口对接 就可以( TXD1 - RXD2 , RXD1 - TXD2 )。
多机 通讯 设置一主机 ,( TXD1 - RXD2 - RXD3 --- RXDn , RXD1 - TXD2 - TXD3 --- TXDn )
方式与 PC 与 单片机 相似。注意 波特率 要相同。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13376165.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存