?? main.c
字號:
#include "msp430x22x4.h"
//此程序是USCIA0的SPI模式中斷方式的從機程序
//首先按下圖連接好導線,在啟動主機程序前先啟動從機程序,調試主機程
//然后再啟動主機程序,從機程序將每次收到的數據回發給主機
// MSP430F2274 MSP430F2274
// master slavor
// ----------------- -----------------
// /|\| XIN|- -|XIN |/|\
// | | | | | |
// --|RST XOUT|- -|XOUT RST|--
// | | | |
// | P1.0|-->LED LED<--| |
// | p3.0UCA0CLK |------------------->|P3.0 |
// | p3.4UCA0SIMO|------------------->|p3.4UCA0SIMO |
// | P3.5UCA0SOMI|<-------------------|P3.5UCA0SOMI |
// | DVSS|--------------------|DVSS |
int main( void )
{
WDTCTL=WDTPW+WDTHOLD; //關看門狗
BCSCTL1 =CALBC1_1MHZ; //設定DCO為1MHZ
DCOCTL =CALBC1_1MHZ;
P1DIR |=BIT0; //使能LED
P3SEL |=BIT4+BIT5+BIT0; //p3.4為SIMO,P3.5為SOMI,P3.0為UCA0CLK
P3DIR |=BIT5; //P3.5為輸出方向
UCA0CTL0 |=UCSYNC+UCCKPL+UCMSB; //spi從機模式,時鐘極性選為高電平無效,選擇最高有效位先發
UCA0CTL1 &=~UCSWRST; //進入spi工作模式
IE2 |=UCA0RXIE; //使能接收中斷
_BIS_SR(GIE+LPM3_bits); //使能總中斷并進入低功耗3
return 0;
}
#pragma vector=USCIAB0RX_VECTOR //spi接收中斷服務
__interrupt void rx_isr(void)
{
while(!(UCA0TXIFG&IFG2)); //查詢發送標志位
UCA0TXBUF=UCA0RXBUF; //將接收緩存器的數據放入發送緩存里
P1OUT ^=BIT0; //led翻轉
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -