?? spi.c
字號:
#include <msp430x16x.h>
/***************************************************************************************
describe:UART SPI mode example
***************************************************************************************/
//definition
#define LEDPORT P5OUT
#define LEDDIR P5DIR
#define RLEDBIT 1<<4
//MCU init
void MCUInit(void)
{
//using 4M external oscillator crystal
volatile unsigned int i;
BCSCTL1 &= ~XT2OFF; // XT2= HF XTAL
while ((IFG1 & OFIFG))
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 1; i--); // Time for flag to set
}
// OSCFault flag still set?
//BCSCTL2 |= SELM_2 + SELS ; // SMCLK = MCLK= XT2 (safe) = 4M
BCSCTL2 |= SELM_1 +DIVM_3 +DIVS_3;
}
//Led Init
void LedInit()
{
//Init
LEDDIR = LEDDIR | RLEDBIT ;
LEDPORT = LEDPORT | RLEDBIT ;
}
//RLedOn
void RLedOn()
{
LEDPORT &= ~RLEDBIT;
}
void RLedOff()
{
LEDPORT |= ~RLEDBIT;
}
//spi init
int init_SPI()
{
U0CTL |= SYNC; //disableUART
U0CTL &= ~I2C; //disableI2C
P4DIR |= 0x02; //p4.2->2420_CS
P3SEL |= 0x0E; //P3.1,2,3 MODFUNC;
//TOSH_SEL_SIMO0_MODFUNC();
//TOSH_SEL_SOMI0_MODFUNC();
//TOSH_SEL_UCLK0_MODFUNC();
IE1 &= ~(UTXIE0 | URXIE0); // interrupt disable
U0CTL = SWRST;
U0CTL |= CHAR | SYNC | MM; // 8-bit char, SPI-mode, USART as master
U0CTL &= ~(0x20); //spi mode
U0TCTL = STC ; // 3-pin
U0TCTL |= CKPH; // half-cycle delayed UCLK
U0TCTL &= ~(SSEL1 | SSEL0 );
U0TCTL |= SSEL1; // use SMCLK, assuming 1MHz
U0MCTL = 0;
ME1 &= ~(UTXE0 | URXE0); //USART UART module disable
ME1 |= USPIE0; // USART SPI module enable
U0CTL &= ~SWRST;
IFG1 &= ~(UTXIFG0 | URXIFG0);
IE1 &= ~(UTXIE0 | URXIE0); // interrupt disabled
return 1;
}
void main()
{
int flag =0;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
MCUInit();
LedInit();
flag = init_SPI();
if(flag)
RLedOn();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -