我正在尝试使用NUCLEO F334R8板在STM32CUBEIDE开发环境中对Microchip MCP4141数字电位计进行编程。我通过SPI通信端口发送一个16位命令。当我将命令字节与数据字节一起发送时,我无法注意到MCP4141的P0A和P0W端子之间的电压变化。你能帮我找出编程错误吗?感谢
uint8_t data[2];
data[0]=0x00;
data[1]=0x0F;
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4,GPIO_PIN_RESET);
HAL_SPI_Transmit(&hspi1, data, 2, 500);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4,GPIO_PIN_SET);
通常当SPI外围设备不工作时,从芯片不会接收到命令。这可能有多种原因:
- 接线不正确(MOSI、MISO、CLK线(
- SPI模式不正确(时钟相位、时钟极性(-->检查CubeMX中的SPI设置
- 由于EN或RST引脚不正确/浮动,从属芯片处于重置状态
你能探测数据线和时钟线吗?你看到有信号在传送吗?或者,您能否成功地从芯片内部存储器读取任何内容,例如状态寄存器?