请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430G2553 您好,TI:
我遇到两个MSP430G2553板之间的SPI通信问题。
我所做的是我创建了一个主版本和一个从版本,在这里我从主版本发送一个字节,然后在从版本中接收它,我正确地接收了它。
现在的问题是,我想使用模拟发现来显示发送的数据包(因为下一个步骤是用TMS320C5402 DSP替换从属设备),所以我只需要验证通信是否打开,我遇到的问题是在模拟发现中 (使用波形)我没有得到发送的字节(0xAA),但我得到了几个不同的值,如果我错过了什么或什么,我不会得到?
这是我正在使用的代码
#include <MSP430-h> #include <msp430g2553.h>/* WFP 1.0 -> SS (未使用) * WFP -> miso * WFP 1.2 -> MOSI * WFP 1.4 -> CLK * WFP 1.1 1.5 -> STE (未使用) * **/ #define SS_PIN BIT0 #define miso_PIN BIT1 #define MOSI_PIN BIIT2 #define CLK_PIN BIT4 #define STE_PIN Bit5 void main (void){ WDTCTL = WDTPW + WDTHOLD; //停止看门狗计时器 BCSCTL1 = CALC1_1MHz; //将DCO设置为1MHz DCOCTL = CALDCO_1MHz; P1SEL = Miso_PIN | MOSI_PIN | CLK_PIN;//| STE_PIN; P1SEL2 = Miso_PIN | MOSI_PIN | CLK_PIN;//| STE_PIN; UCA0CTL1 = UCSWRST; UCA0CTL0 |= UCCKPH + UCMSB + UCMST + UCSYNC;// 3引脚,8位SPI主控制器 UCA0CTL1 |= UCSSEL_2;// SMCLK UCA0BR0 |= 0x02;///2 UCA0BR1 = 0;// UCA0MCTL = 0;//无调制 UCA0CTL1 &=~UCSWRST;//**初始化USCI状态机** _ BIS_SR (GIE); //启用中断 i=0; 同时(1) { 当(!(IFG2 & UCA0TXIFG));// USI_A0 TX缓冲器就绪? UCA0TXBUF = 0xAA;//通过SPI发送0xAA到从属设备 P1OUT ^= BIT0; __delay_cycles(1000); } }