串口同时支持原来的方式吧

This commit is contained in:
Stone 2014-09-08 04:00:12 +00:00
parent ccb8d1df59
commit eda680bddf
3 changed files with 38 additions and 12 deletions

View File

@ -16,7 +16,7 @@ SerialPort::SerialPort(USART_TypeDef* com, int baudRate, int parity, int dataBit
assert_param(com); assert_param(com);
USART_TypeDef* g_Uart_Ports[] = UARTS; USART_TypeDef* g_Uart_Ports[] = UARTS;
_index = 0xFF; byte _index = 0xFF;
for(int i=0; i<ArrayLength(g_Uart_Ports); i++) for(int i=0; i<ArrayLength(g_Uart_Ports); i++)
{ {
if(g_Uart_Ports[i] == com) if(g_Uart_Ports[i] == com)
@ -25,13 +25,21 @@ SerialPort::SerialPort(USART_TypeDef* com, int baudRate, int parity, int dataBit
break; break;
} }
} }
Init(_index, baudRate, parity, dataBits, stopBits);
}
void SerialPort::Init(byte index, int baudRate, int parity, int dataBits, int stopBits)
{
USART_TypeDef* g_Uart_Ports[] = UARTS;
_index = index;
assert_param(_index < ArrayLength(g_Uart_Ports)); assert_param(_index < ArrayLength(g_Uart_Ports));
_port = g_Uart_Ports[_index];
_baudRate = baudRate; _baudRate = baudRate;
_parity = parity; _parity = parity;
_dataBits = dataBits; _dataBits = dataBits;
_stopBits = stopBits; _stopBits = stopBits;
_port = com;
_tx = NULL; _tx = NULL;
_rx = NULL; _rx = NULL;

View File

@ -19,9 +19,24 @@ private:
AlternatePort* _tx; AlternatePort* _tx;
InputPort* _rx; InputPort* _rx;
void Init(byte index,
int baudRate = 115200,
int parity = USART_Parity_No, //无奇偶校验
int dataBits = USART_WordLength_8b, //8位数据长度
int stopBits = USART_StopBits_1); //1位停止位
public: public:
OutputPort* RS485; // RS485使能引脚 OutputPort* RS485; // RS485使能引脚
SerialPort(COM_Def index,
int baudRate = 115200,
int parity = USART_Parity_No, //无奇偶校验
int dataBits = USART_WordLength_8b, //8位数据长度
int stopBits = USART_StopBits_1) //1位停止位
{
Init(index, baudRate, parity, dataBits, stopBits);
}
SerialPort(USART_TypeDef* com, SerialPort(USART_TypeDef* com,
int baudRate = 115200, int baudRate = 115200,
int parity = USART_Parity_No, //无奇偶校验 int parity = USART_Parity_No, //无奇偶校验

23
Sys.h
View File

@ -35,17 +35,20 @@ typedef char* String;
#include "Platform\Pin.h" #include "Platform\Pin.h"
/* 串口定义 */ /* 串口定义 */
#define COM1 0 typedef enum
#define COM2 1 {
#define COM3 2 COM1 = 0,
#define COM4 3 COM2 = 1,
#define COM5 4 COM3 = 2,
COM4 = 3,
COM5 = 4,
#ifdef STM32F4 #ifdef STM32F4
#define COM6 5 COM6 = 5,
#define COM7 6 COM7 = 6,
#define COM8 7 COM8 = 7,
#endif #endif
#define COM_NONE 0xFF COM_NONE = 0xFF
} COM_Def;
// 委托 // 委托
#include "Delegate.h" #include "Delegate.h"
@ -61,7 +64,7 @@ public:
bool Inited; // 是否已完成初始化 bool Inited; // 是否已完成初始化
uint Clock; // 系统时钟 uint Clock; // 系统时钟
uint CystalClock; // 晶振时钟 uint CystalClock; // 晶振时钟
byte MessagePort; // 消息口默认0表示USART1 COM_Def MessagePort; // 消息口默认0表示USART1
byte ID[12]; // 芯片ID。 byte ID[12]; // 芯片ID。
ushort FlashSize; // 芯片Flash容量。 ushort FlashSize; // 芯片Flash容量。
ushort RAMSize; // 芯片RAM容量 ushort RAMSize; // 芯片RAM容量