我希望你的一天一切顺利。我正在对 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);
}
}`