?? hnr_s6.c
字號:
//USB轉FIFO實驗
/*
需要將USBMD1接到USBMD1插座上,然后連上USB線,把驅動程序安裝好。
需要將8路的按鍵電路板接到P5口上
功能1:將電腦傳出來的數據傳回到電腦上
功能2:將P5口的按鍵值發送到電腦上
電腦收發軟件采用軟件HNRCOM.exe,波特率隨便設,實際傳輸的跟波特率設置無關,該模塊都會采用最高速度進行通訊,即8Mbps
調試時,要選擇正確的串口號,一般情況下都會大于COM4
*/
#include "msp430x14x.h"
main()
{
unsigned int i;
unsigned char cusbtxdata;
unsigned char keyval;
WDTCTL=WDTPW+WDTHOLD;//關閉看門狗
//端口初始化
P1DIR=0x00;//P1口所有引腳設置為輸入
P2DIR=0x03;//P2.0~2.1為輸出,其余為輸入
P2OUT = 0x03; //平時保持高電平
P2IE = BIT3; //接收中斷
P2IES = BIT3; //下降沿中斷
P5DIR = 0x00; //P5口作為按鍵輸入
do
{
IFG1&=~OFIFG;//清除振蕩器失效標志
for(i=255;i>0;i--);
}while(IFG1&OFIFG);//判斷XT2是否起振
BCSCTL2=SELM1+SELS;//MCLK SMCLK時鐘源為TX2CLK不分頻
cusbtxdata=0;
_EINT();//開啟中斷
while(1)
{
keyval = P5IN;
if((keyval!=0xff)&&(keyval!=cusbtxdata))
{
//向PC傳輸數據
cusbtxdata = keyval;
P2OUT |= BIT1;
P1DIR = 0XFF;//P1口所有引腳設置為輸出
P1OUT = cusbtxdata;
P2OUT &=~BIT1;
P2OUT |= BIT1;
}
for(i=0;i<1000;i++)
{
_NOP();
_NOP();
}
};
}
#pragma vector=PORT2_VECTOR
__interrupt void PORT1 (void)
{
unsigned char rxdata;
if((P2IN&BIT3)!=BIT3)
{
//接收數據
P1DIR=0x00;//P1口所有引腳設置為輸入
P2OUT &=~BIT0; //開發接收
_NOP();
rxdata = P1IN; //接收數據
_NOP();
P2OUT |= BIT0; //接收完畢
_NOP();
//回傳數據
P2OUT |= BIT1;
P1DIR = 0XFF;//P1口所有引腳設置為輸出
P1OUT = rxdata; //送出數據
P2OUT &=~BIT1; //發送使能
P2OUT |= BIT1; //發送結束
}
P1IFG=0X00; //清除中斷標志
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -