資源簡介
可用串口助手進行調試,適用于初學msp430 單片機串口通信的人。
代碼片段和文件信息
#include??
//////////////////////////////
// 常量定義?????????//
//////////////////////////////
//?1s軟件定時器溢出值,200個5ms
#define?V_T1s 200
//////////////////////////////
// 變量定義?????????//
//////////////////////////////
//?1s軟件定時器計數
unsigned?char?clock1s=0;
//?1s軟件定時器溢出標志
unsigned?char?clock1s_flag=0;
//?指示燈驅動信號輸出緩存
unsigned?char?led1_redled2_green;
//?測試用計數器
unsigned?int?test_counter=0;
//?測試用計數值十進制表示
unsigned?char?digi[4]={0000};
void?port_init(void)
{
????P1DIR?|=?BIT0+BIT6;??????//?P1.0、P1.6?output
}
//TIMER0?initialize?-
//?desired?value:?5ms
void?timer0_init(void)
{
//?Configure?Timer0
TA0CTL?=?TASSEL_2?+?MC_1?;??????????//?定時器0時鐘:?SMCLK=1MHz?UP?mode
TA0CCR0?=?5000;?????????????????//計滿?5000?一次中斷???,5?ms
CCTL0?=?CCIE;?????????????????? //CCR0?interrupt?enabled
}
//?Timer0_A0?interrupt?service?routine
#pragma?vector=TIMER0_A0_VECTOR
__interrupt?void?Timer0_A0?(void)
{
//?1秒鐘軟定時器計數
if?(++clock1s>=V_T1s)
{
clock1s_flag?=?1;?//當1秒到時,溢出標志置1
clock1s?=?0;
?????}
if?(led1_red==1)
????P1OUT?&=?~?BIT0;?//紅燈亮
else
P1OUT?|=??BIT0;??//紅燈滅
if?(led2_green==1)
????P1OUT?&=?~?BIT6;??//綠燈亮
else
P1OUT?|=??BIT6;???//綠燈滅
}
void?uart_init(void)
{
P1SEL?|=?BIT1?+?BIT2?;?????????????????????//?P1.1?=?RXD?P1.2=TXD
P1SEL2?|=?BIT1?+?BIT2?;?????????????????????//?P1.1?=?RXD?P1.2=TXD
UCA0CTL1?|=?UCSSEL_2;?????????????????????//?uart時鐘:?SMCLK=1MHz
UCA0BR0?=?104;????????????????????????????//?設置波特率:9600
UCA0BR1?=?0;??????????????????????????????//?設置波特率:9600
UCA0MCTL?=?UCBRS0;????????????????????????//?Modulation?UCBRSx?=?1
UCA0CTL1?&=?~UCSWRST;?????????????????????//?**Initialize?USCI?state?machine**
IE2?|=?UCA0RXIE;??????????????????????????//?Enable?USCI_A0?RX?interrupt
}
//??uart串口RX接收到一個字符產生中斷處理
#pragma?vector=USCIAB0RX_VECTOR
__interrupt?void?USCI0RX_ISR(void)
{
?????switch?(UCA0RXBUF)
?? {
?? case?‘1‘:?led1_red=0;
?? break;
?? case?‘2‘:?led1_red=1;
?? break;
?? case?‘3‘:?led2_green=0;
?? break;
?? case?
- 上一篇:WAV轉C格式 聲音文件轉換器
- 下一篇:年度工作計劃總結報告模板47頁
評論
共有 條評論