您好,
现在,我正在尝试通过SPI将具有STM32F407的输出值写入DAC8552。 根据数据表寄存器描述,DAC应更改该值。 但它只会返回满刻度或零刻度。 传输的数据似乎也是正确的。
现在,DAC安装在分路板上。 它由实验室PSU提供5V电压。 对于首次测试,我将V_ref绑定到电源电压。
我的SPI具有以下配置:
模式:Master
时钟频率= 10MHz
数据流大小:8位
CPOL:0
CPHA:1.
第一位:MSB
儿童权利委员会:残疾
在我的软件中,我只需将两个不同的值写入DAC A,其间有100毫秒的延迟。 只需使用函数HAL_SPI_Transmit就会发送由其第三个参数定义的n个字节。
uINT8_t字节1[3];
uINT8_t字节2[3];
bytes1[0]= 0x10;
bytes1[1]= 0xAA;
bytes1[2]= 0x00;
bytes2[0]= 0x10;
bytes2[1]= 0x20;
bytes2[2]= 0x00;
HAL_GPIO_WritePin (SPI_CS1_GPIO端口,SPI_CS1_Pin,GPIO_PIN_SET);// SYNC=高
同时(1){
HAL_GPIO_WritePin (SPI_CS1_GPIO端口,SPI_CS1_Pin,GPIO PIN重置);// SYNC=低
HAL_SPI_Transmit (&hspi1,(uint8_t *)&bytes1,3100);//发送bytes1的每个元素
HAL_GPIO_WritePin (SPI_CS1_GPIO端口,SPI_CS1_Pin,GPIO_PIN_SET);// SYNC=高
HAL_DELAY (100);
HAL_GPIO_WritePin (SPI_CS1_GPIO端口,SPI_CS1_Pin,GPIO PIN重置);// SYNC=低
HAL_SPI_Transmit (&hspi1,(uint8_t *)&bytes2,3100);//发送bytes2的每个元素
HAL_GPIO_WritePin (SPI_CS1_GPIO端口,SPI_CS1_Pin,GPIO_PIN_SET);// SYNC=高
HAL_DELAY (100);
}
您是否知道DAC8552和STM32Fxx的此类问题? 您是否知道可能会出现什么问题?
此致,
西蒙