📄 uart.h
字号:
#ifndef _UART
#define _UART
#include "MSP430x14x.h"
#define WAIT_READ_FINISH 0x0
#define READ_X_STEP 0x1
#define READ_Y_STEP 0x2
#define READ_Z_STEP 0x3
#define SENT_REQUEST 0X4
#define PACK_LENTH 12
unsigned char nRxFinish; //接收包完了标志
unsigned char RecData[PACK_LENTH];
static unsigned char id = 0,flag = 0;
/*----------------------------------------------------------------
串口1接收中断服务子程序
----------------------------------------------------------------*/
#pragma vector = USART1RX_VECTOR
__interrupt void Usart1_rx( void )
{
if( flag == 0)
{
if( RXBUF1 == 0xAA )
{
flag = 1;
id=0;
}
}
else
{
RecData[id] = RXBUF1;
id++;
if( id == PACK_LENTH )
{
nRxFinish = 1;
flag = 0;
id = 0;
}
}
}
/*----------------------------------------------------------------
初始化串口1通讯
----------------------------------------------------------------*/
void Init_Usart1( void )
{
UCTL1 |= SWRST;
// UCTL1 |= CHAR + PEV + PENA; // 8-bit character
UCTL1 |= CHAR ; // 8-bit character
UTCTL1 |= SSEL0 + SSEL1; // UCLK = MCLK
/* UBR01 = 0x81; // 3m/23184 = 129.4
UBR11 = 0x00; //
UMCTL1 = 0x92; // 0.4*8*/
UBR01 = 0x46; // 3m/42328 = 129.4
UBR11 = 0x00; //
UMCTL1 = 0xef; // 0.4*8
UCTL1 &= ~SWRST; // Initialize USART state machine
ME2 |= UTXE1 + URXE1; // Enable USART1 TXD/RXD
IE2 |= URXIE1 ; // Enable USART1 RX interrupt
}
/*----------------------------------------------------------------
发送一个字节子程序
----------------------------------------------------------------*/
void Usart1_send( unsigned char nByte )
{ P3OUT |= 0x20; //485发送状态
TXBUF1 = nByte;
while(( UTCTL1 & 0x01) == 0)
{
}
P3OUT &= 0xdf; //485接收状态
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -