⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart.h

📁 参考网上的提供的代码,我把uCosII移植到MSP430f149上,分三个任务,分别是485通讯,键盘扫描,LED显示,可供参考!
💻 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 + -