This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430F6736:SPI USCI_A1模块问题

Guru**** 665180 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/688537/ccs-msp430f6736-spi-usci_a1-module-problem

器件型号:MSP430F6736

工具/软件:Code Composer Studio

您好,

我有一个带有控制器和超声波传感器(MAX35101)的定制板、它们之间的接口由 SPI 提供。我正在使用(SPI A1) A1模块。我的配置如下所示。

///////////////////////////////////////////////////// 初始化////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

P8SEL&&=~BIT6;//CS 引脚
P8DIR|=BIT6;
P8OUT|=BIT6;//初始 CS 引脚为高电平
P1SEL|=BIT4|BIT4;//辅助外设选择
P2SEL|=BIT4;

UCA1CTL1 |=UCSWRST;
UCA1CTL0 =0XA9;
UCA1CTL1|= UCSSEL_2;// SMCLK
UCA1BR0 = 0x02;///2
UCA1BR1 = 0x00;
UCA1MCTLW = 0;
P2DIR |=BIT4;
P1DIR |=BIT5;
P1DIR &=~BIT4;

UCA1CTL1 &=~UCSWRST;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

如果我将一个8位寄存器值发送到 max35101、我只能看到一个时钟(我使用逻辑分析仪探测 MOSI MISO SCK CS 引脚 )。为了测试时钟、我将写入以下代码


while (1){
P8OUT|=BIT6;
_delay_cycles (10000);
P8OUT&=~BIT6;

UCA1TXBUF = 0x38;               //通过 SPI 发送到从属设备
while (!(UCA1IFG&UCTXIFG));  

P8OUT|=BIT6;

但是、对于 每个芯片选择低电平时间、我在时钟线中只能看到一个脉冲。是否有人可以解释这是怎么发生的?(我通过切换引脚来检查引脚、它们看起来很好)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    > while (!(UCA1IFG&UCTXIFG));
    >P8OUT|=BIT6;

    UCTXIFG 并不表示所有位都已发送、只是表示保持缓冲区为空。 请尝试在 UCBUSY 上等待、如下所示:

    > while (UCA1STAT & UCBUSY)/* empty*/;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复、
    我解决了这个问题、上面的代码是正确的、因为我使用 DSO 探测、我得到了值和正确的时钟。

    阿尤