📄 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 + -