我希望你的一天顺利。我正在编程LPC1768以向AD5791发送信号,以便根据AD5791的输出电压输出给定频率。我附上了电路图。我已经能够从LPC1768看到和写入AD5791。但是,当我将VCO连接到信号分析仪时,当我“改变”AD5791的电压输出时,我发现峰值频率没有变化。我一直在用mbed编程。以下是我目前使用的代码。输入将不胜感激。我认为问题可能在于如何实现spi.write。 AD5791需要20位字,LPC1768最多只能发送16位字。此外,还有字节序的问题 - 但我相信我已经解决了这个问题,因为我正按照预期的顺序读出我写给AD5791的内容。
#include "mbed.h"
SPI spi(p5, p6, p7); // mosi, miso, sclk
DigitalOut cs(p8);
int main()
{
spi.format(8,1);
spi.frequency(1000000);
cs=1;
while(1)
{
cs = 0;
spi.write(0x10);
spi.write(0xFF);
spi.write(0xFF);
cs = 1;
cs = 0;
int first = spi.write(0x90);
int second = spi.write(0x00);
int third = spi.write(0x00);
cs = 1;
printf("first register = 0x%X\n", first);
printf("second register = 0x%X\n", second);
printf("third register = 0x%X\n", third);
}
}`