您好 Joseph、 我已经使用示波器和逻辑器件进行了测试、向您发送完整的代码 和图像。
SPI 命令是 ok,极性也是一样的,
我应该在连接中遇到任何问题吗?
#include
#define res 6
#define CLR 7
#define LDAC 7.
#define cs 8.
int recv=0;
void setup(){
Serial.begin(9600);
//将您的设置代码放在这里,运行一次:
引脚模式(Cs、输出);
引脚模式(LDAC、输出);
引脚模式(CLR、输出);
PinMode (res、OUTPUT);
SPI.begin();
SPI.beginTransaction(SPISettings(40000、MSBFIRST、SPI_MODE1));
// SPI.beginTransaction(SPISettings(40000、MSBFIRST、SPI_MODE0));
SPI.begin();
digitalWrite (CLR、low);
digitalWrite (res、low);
延迟(100);
digitalWrite (res、high);
digitalWrite (cs、HIGH);
digitalWrite (LDAC、low);
}
void loop(){
spiWrite (0x02,0b000000010000);//0b000000010000
延迟(100);
spiWrite (0x06、0b0000000000000000);//b0000000000000000
延迟(100);
spiWrite (0x07、0b0000001000011111);//b0000001000011111
延迟(100);
spiWrite (0x03、0b0000000000000000);//b0000000000000000
延迟(100);
spiWrite (0x04、0b000100000000);//0b000100000000
延迟(100);
spiWrite (0x05、0b1111111111111111);//0b11111111111111111111
延迟(1000);
}
void spiWrite (int address、int value){
//将 SS 引脚置为低电平以选择芯片:
digitalWrite (cs、low);
delayMicroseconds (2);
//通过 SPI 发送地址和值:
spi.transfer (address);
//spi.transfer (value);
spi.transfer16 (value);
delayMicroseconds (2);
//将 SS 引脚置为高电平以取消选择芯片:
digitalWrite (cs、HIGH);
spi.endTransaction();
}
我有0.235v en 负极引脚和3.3V 非正极 ARM。
我认为 SPI 在时钟的下降沿具有正确的模式、当发送24位命令时、芯片选择为低电平。
您能 看到 任何想法或错误吗?
此致