根据官方提供的时序图写的程序如下
void DAC7744_Write_A(uint16_t Byte)
{
uint16_t RbyteL,RbyteH;
uint16_t ByteL,ByteH;
uint16_t WbyteL,WbyteH;
// RestH;
CSH;
RWH;
LOADH;
delay_1us(100); //将近11us
RWL;
delay_1us(100); //将近11us
A1L;
delay_1us(100); //将近11us
A2L;
LOADL;
delay_1us(100); //将近11us
RbyteL = GPIO_ReadOutputData(GPIOA);
ByteL = RbyteL & 0xE000;
WbyteL = Byte & 0x1FFF;
GPIO_Write(GPIOA,ByteL | WbyteL);
delay_1us(100); //将近11us
RbyteH = GPIO_ReadOutputData(GPIOB);
ByteH = RbyteH & 0x1FFF;
WbyteH = Byte & 0xE000;
GPIO_Write(GPIOB,ByteH | WbyteH);
delay_1us(100);
CSL;
delay_1us(100);
CSH;
delay_1us(100);
RWH;
delay_1us(100);
LOADH;
delay_1us(100);
LOADL;
delay_1us(100);
// CSL;
// delay_1us(100);
}
但是DAC7744 一点反应都没,应该是A通道有10V的输出的
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
Rest_DAC7744();
while (1)
{
DAC7744_Write_A(0xFFFF);
}
}
这样写有什么问题吗?