?? sport0.c
字號:
#include "chip.h"
#include "string.h"
unsigned char tx0flg,rx0flg;
unsigned char rxbuf0;
extern const unsigned char hexchar[16];
void InitSport0(void)
{
UCTL0=SWRST; //Ready for configurating serial's parameters
UCTL0 |=CHAR;//+LISTEN; //Data frame format(8-N-1) with listen
UTCTL0=SSEL1+URXSE; //Selection of SMCLK becomes baud ratio clock,edge of starting singal available
URCTL0=URXEIE; //Wrong message interrupt of reception enable
UBR10=0; //Baud ratio adjustiing
UBR00=69; //115200 @ 8MHz External Oscillator
UMCTL0=0x55;
U0ME=URXE0+UTXE0; //Functions of reception and transmitter enable
UCTL0 &=~SWRST; //Functions of serial port enable
U0IE=URXIE0;//+UTXIE0; //Enable interrupt of reception
P3SEL |=0x30; //P3.5(URXD0),P3.4(UTXD0)
P3OUT &=0xDF; //Setting P3.5 input
P3OUT |=0x10; //Setting p3.4 output
P3DIR |=0x10; //Setting P3.4 direction to output
tx0flg=1;
rx0flg=0;
}
#pragma vector=UART0TX_VECTOR
__interrupt void usart0_tx (void)
{
__disable_interrupt(); //Entry routine of TX0 with clearing URXIFG0 automatically
tx0flg=1; //Setting transmission successful flag
__enable_interrupt();
}
#pragma vector=UART0RX_VECTOR
__interrupt void usart0_rx (void)
{
__disable_interrupt();
// The following routine is used when setting UXRSE under low-power mode
if(!(U0IFG & URXIFG0))
{
UTCTL0 &=~URXSE; //Clear inner URXS flag without occuring URXIFGO
UTCTL0 |=URXSE; //Re-setting URXSE founction
__bis_SR_register(SCG0+SCG1); //Activating DCO if it was disabled by low-power mode
}
//The following routine is a normal interrupt service
else
{
rx0flg=1; //Setting transmission successful flag;
rxbuf0=RXBUF0; //Reading data from RXBUF0 for clearing URXIFG0 automatically
P2OUT ^=0x04;
}
__enable_interrupt();
}
void Tx0Char(unsigned char c)
{
while(!(UTCTL0 & TXEPT));
tx0flg=0;
TXBUF0=c;
while(!(U0IFG & UTXIFG0));
tx0flg=1;
}
void Tx0S(unsigned char *p)
{
while(*p)
{
if(*p=='\n')
{
Tx0Char(0x0d);
Tx0Char(0x0a);
}
else Tx0Char(*p);
p++;
}
}
void Tx0HexC(unsigned char c)
{
Tx0Char(hexchar[(c & 0xf0)>>4]);//high 4-bit to ASCII
Tx0Char(hexchar[c & 0x0f]); //low 4-bit to ASCII
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -