0

我正在尝试使用 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);
4

1 回答 1

0

通常当 SPI 外设不工作时,从芯片接收不到命令。这可能有多种原因:

  • 接线错误(MOSI、MISO、CLK 线)
  • 不正确的 SPI 模式(时钟相位、时钟极性) --> 检查 CubeMX 中的 SPI 设置
  • 由于 EN 或 RST 引脚不正确/浮动,从芯片处于复位状态

你能探测数据和时钟线吗?您是否看到正在传输的信号?或者,您能否成功地从芯片内部存储器中读取任何内容,例如状态寄存器?

于 2021-05-10T11:58:55.410 回答