📄 uart串口通信07.4.11.txt
字号:
#include "msp430x14x.h"
void Init_CLK(void);
void init_uart(void);
//void uart_start(void);
//void uart_send(void);
//void uart_receive(void);
//unsigned char RXDATA_BUF[10],TXDATA_BUF[10]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a};
//unsigned int RX_count=0,TX_count=0,TXBUF_num=10,RXBUT_num=10,FLAG;
void Delay(unsigned long i) //延时子程序
{
while(i--);
}
char Data[6]="MSP430";
void main(void)
{ WDTCTL=WDTPW+WDTHOLD;
Init_CLK();
init_uart();
_EINT();
TXBUF1=0xFF;
while((UTCTL1&BIT0)==0);
for(int i=0;i<=6;i++)
{ Delay(20000);
TXBUF1=Data[i];
while((UTCTL1&BIT0)==0);
}
while(1)
{}
}
void Init_CLK(void)
{
unsigned int i;
BCSCTL1=0x00; //将寄存器BCSCTL1的内容清零、XT2振荡器开启、LFTX1工作在低频模式
//ACLK的分频因子为1
do
{
IFG1&=~OFIFG; //清除OSCFault标志
for(i=0x20;i>0;i--);
}
while((IFG1&OFIFG)==OFIFG);
BCSCTL2=0x00; //将寄存器BCSCTL2的内容清零
BCSCTL2+=SELM1;//MCLK的时钟源为XT2CLK,分频因子为1
BCSCTL2+=SELS; //SMMLK的时钟源为XT2CLK,分频因子为1
}
void init_uart(void) //初始化UART
{
//选择发送时钟源置位
UCTL1|=SWRST;
UCTL1|=CHAR;
UTCTL1+=SSEL0; //选择时钟为ACLK
UBR01=0x03; //波特率9600
UBR11=0x00;
UMCTL1=0x4A;
UCTL1&=~SWRST;
IE2&=~UTXIE1; //在没有使用中断函数时,不允许UART1传输中断使能
ME2|=UTXE1+URXE1; //使能TXD
IFG2=0X00;
P3SEL|=0xC0; // 将P3.6 P3.7使用外围模块 = USART1 TXD/RXD
P3DIR|=0x40; // 将P3.4设为输出(发),P3.5默认为输入(收)
}
/*
void uart_start(void)
{
while((UTCTL1&BIT0)!=BIT0);
TXBUF1=TXDATA_BUF[0];
}
void uart_send(void)
{
}
void uart_receive(void)
{
RXDATA_BUF[RX_count]=RXBUF1;
RX_count+=1;
if(RX_count>=RXBUT_num) {RX_count=0;}
}
#pragma vector=UART1TX_VECTOR
__interrupt void uart_tx(void)
{
}
#pragma vector=UART1RX_VECTOR
__interrupt void uart_rx(void)
{
uart_receive();
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -