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/MSP430F5507:大家好,我需要一些有关使用SPI通信协议的MSP430F5507的帮助。

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/577034/ccs-msp430f5507-hi-i-need-some-help-with-my-msp430f5507-using-spi-comunication-protocol

部件号:MSP430F5507

工具/软件:Code Composer Studio

大家好,我是微处理器MSP430的新用户。 我正在尝试使用SPI协议与闪存M25P40通信。 我n´t UCB1TXBUF寄存器发送数据,但我没有收到任何数据。

#include <MSP4S.h>

unsigned char MST_Data, SLV_Data;

内部主(无效)

易失性无符号int I;

WDTCTL = WDTPW + WDTHOLD;//停止看门狗计时器
IF (CALBC1_1MHz=0xFF)// If calibration constant erased

while (1);//不加载,捕获CPU!!
}
DCOCTL = 0;//选择最低DCOx和MODx设置
BCSCTL1 = CALC1_1MHz;//设置DCO
DCOCTL = CALDCO_1MHz;
对于(i=2100;i>0;i--);//等待DCO稳定。

P1OUT = 0x00;// P1 LED设置
P1DIR |= 0x01;//
P3OUT = 0x20;//设置从属复位- WFP 3.5
P3DIR |= 0x20;//
P5SEL |= 0x0E;// WFP 5.1 ,2,3 USI_B1选项选择

UCB1CTL0 |= UCCKPL + UCMSB + UCMST + UCSYNC;// 3引脚,8位SPI主控
UCB1CTL1 |= UCSSEL_2;// SMCLK
UCB1BR0 |= 0x02;// BRCLK = SMCLK/2
UCB1BR1 = 0;//
UCB1CTL1 &=~UCSWRST;//**初始化USCI状态机**
UC1IE |= UCB1RXIE;//启用USCI1 RX中断

P3OUT &=~0x20;//重置从机- RST -活动低电平
P3OUT |= 0x20;//现已初始化SPI信号,

对于(i = 50;i > 0;i --);//等待从属设备初始化

MST_Data = 0x01;//初始化数据值
SLV_Data = 0x00;

UCB1TXBUF = MST_Data;// Tx (01)和Rx (00)-第一个字符

__bis_sr_register(LPM0_bits + GIE);// CPU关闭,启用中断
}

//测试有效的RX和TX字符
#if defined(__TI_Compiler_version__)|| defined(__IAR_SYSTEMS _ICC__)
#pragma vector=USCIAB1RX_vector
__interrupt void USCIB1RX_ISR(void)
#Elif已定义(__GMNU__)
void __attribute__((interrupt (USBIAB1RX_vector))) USBIB1RX_ISR (void)
#否则
错误编译器不受支持!
#endif

易失性无符号int I;

同时(!(UC1IFG和UCB1TXIFG);// USI_B1 TX缓冲器就绪?

IF (UCB1RXBUF == SLV_Data)//测试正确的RX字符
P1OUT |= 0x01;//如果正确,则指示灯亮起
否则
P1OUT &=~0x01;//如果不正确,请清除LED

MST_Data++;//递增主值
SLV_Data+;//增加预期的从属值
UCB1TXBUF = MST_Data;//发送下一个值(Tx和Rx)

对于(I = 1万;I;I--);//将传输之间的时间添加到
}//确保从属设备可以保持连接

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    F5507上不存在CALC1_1MHz之类的内容。 为错误的MCU编译此代码。