在嵌入式linux系统的spi的输出值只能输出8位,16位,32位的数字,而对于AD5410/AD5420的24位寄存器的控制输出会出现位数的偏差。
解决这样的问题有两种方法:
1,在设置输出位32个字符,而在wirte中使用8位的字符,但需要注意,4个8位的字符在32的写入操作是相反的顺序
例如:写入给AD5410写入复位操作0x560001;
tx[]={0x01,0x00,0x56,0x00}
write(fd ,tx[],4);
2.在设置输出位为32字符,而在wirte使用32位的字符,但需要注意,spi总线输出的字符数组必须含有4N个的元素。
例如:写入给AD5410写入复位操作0x560001;
tx[]={0x560001,0x560001,0x560001,0x560001};
write(fd ,tx[],4);
解决这样的问题有两种方法:
1,在设置输出位32个字符,而在wirte中使用8位的字符,但需要注意,4个8位的字符在32的写入操作是相反的顺序
例如:写入给AD5410写入复位操作0x560001;
tx[]={0x01,0x00,0x56,0x00}
write(fd ,tx[],4);
2.在设置输出位为32字符,而在wirte使用32位的字符,但需要注意,spi总线输出的字符数组必须含有4N个的元素。
例如:写入给AD5410写入复位操作0x560001;
tx[]={0x560001,0x560001,0x560001,0x560001};
write(fd ,tx[],4);