You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MSP432与AS5048A的16位SPI通信故障排查求助

问题:MSP432与AS5048A 16位SPI通信故障排查

AS5048A相关示意图1
AS5048A相关示意图2

我正尝试与需要16位SPI通信的AS5048A编码器建立连接,但所使用的MSP432微控制器的SPI TX/RX缓冲区为8位(最高字节被保留),目前通信无法建立。希望有人帮忙排查错误,或确认当前实现方式是否正确。

uint8_t SPI_Transfer(uint8_t byte) {

    // Wait for transmit buffer to be empty
    while (!(EUSCI_A3->IFG & EUSCI_A_IFG_TXIFG));

    // Write data to transmit buffer
    EUSCI_A3->TXBUF = byte;

    // Wait for receive buffer to be full
    while (!(EUSCI_A3->IFG & EUSCI_A_IFG_RXIFG));

    // Read data from receive buffer
    return EUSCI_A3->RXBUF;
}

uint16_t AS5048A_ReadAngle(void) {

    uint16_t angulo = 0;

    uint8_t comando[2] = {0xFF, 0xFF};

    // Select AS5048A
    P9->OUT &= ~BIT4;


    for(i = 0; i < 2; i++){

        angle[i] = SPI_Transfer(comando[i]);  // Send read command

    }

    // Send dummy byte to receive angle
    // angulo = SPI_Transfer(0x0000);

    // Deselect AS5048A
    P9->OUT |= BIT4;

    angulo = ((angle[0] << 8) | (angle[1])); //conversion to uint16t
    angulo =  angulo & 0x3FFF; // to eliminate two first bits that don't represent data (err and parity)

    return angulo;
}

非常感谢您的帮助!

内容的提问来源于stack exchange,提问作者Alex Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 22:58:25