Commit 9e4aee22 authored by 梁百峰's avatar 梁百峰

feat:增加与esp32通讯串口

parent 302a192b
......@@ -24,8 +24,9 @@ uint8_t BarCode1[256] = {0};
uint32_t readNum = 0;
uint32_t readNum1 = 0;
static uint32_t Protocol_UartRead(uint8_t *pData, uint32_t len);
static uint32_t Protocol_UartRead1(uint8_t *pData, uint32_t len);
static uint32_t Protocol_UartRead(uint8_t *pData, uint32_t len);//485
static uint32_t Protocol_UartRead1(uint8_t *pData, uint32_t len);//扫码枪
static uint32_t Protocol_UartRead2(uint8_t *pData, uint32_t len);//esp32
uint8_t nowdata[4];
uint8_t lastdata[4];
uint8_t checkresult;
......@@ -419,6 +420,27 @@ void UART_Put1(uint32_t Value)
}
return;
}
void UART_Put2(uint32_t Value)
{
uint32_t nextPos = 0u;
nextPos = (UARTRxBuf.write_pos + 1) % UART_RX_MAX_DEPTH;
if ( nextPos == UARTRxBuf.read_pos )
{
//队列已满,无法插入队列
// UARTRxBuf.write_pos = 0;
// RS485_TX_finish = 0;
}
else
{
UARTRxBuf.Rx_Buffer [ UARTRxBuf.write_pos ] = Value;
UARTRxBuf.write_pos = (UARTRxBuf.write_pos + 1) % UART_RX_MAX_DEPTH;
}
RS485_send_time = 0;
return;
}
void Recv_Byte(void)
{
int i = 0;
......@@ -608,4 +630,103 @@ static uint32_t Protocol_UartRead1(uint8_t *pData, uint32_t len)
}
return i;
}
\ No newline at end of file
}
void Recv_Byte2(void)
{
int i = 0;
int j = 0;
uint32_t len;
readNum1 = Protocol_UartRead2(mDataBufPtr1 + mDataBufLen1, 1024 - mDataBufLen1);
// if (readNum1 > 0)
// {
// BarCodeDataGet();
// }
if (readNum1 > 0)
{
mDataBufLen1 += readNum1;
while(mDataBufLen1)
{
memset(BarCode1, 0, sizeof(BarCode1));
for(i = 0; i < mDataBufLen1; i++)
{
// if((mDataBufPtr1[i] == 0x0 ) && (mDataBufPtr1[i - 1] == 0x0))
// {
// if( i < 1)
// {
// break;
// }
// memset(BarCode1, 0, sizeof(BarCode1));
for(j = 0; j < mDataBufLen1; j++)
{
BarCode1[j] = mDataBufPtr1[j];
}
// }
}
// 解析协议
len = mDataBufLen1;
if ( (len > 0) && (len < mDataBufLen1) )
{
// 将未解析的数据移到头部
// Move unparsed data to the head
memcpy(mDataBufPtr1, mDataBufPtr1 + len, mDataBufLen1 - len);
// memcpy(nowdata,mDataBufPtr + len,len);
// datacheck();
}
mDataBufLen1 -= len;
}
BarCodeDataGet();
}
}
static uint32_t Protocol_UartRead2(uint8_t *pData, uint32_t len)
{
uint32_t i = 0;
uint32_t DataLen = 0u;
uint32_t ReadLen = 0u;
if ( UARTRxBuf1.write_pos == UARTRxBuf1.read_pos )
{
return 0; //队列空
}
if ( UARTRxBuf1.write_pos > UARTRxBuf1.read_pos )
{
DataLen = UARTRxBuf1.write_pos - UARTRxBuf1.read_pos;
}
else
{
DataLen = UART_RX_MAX_DEPTH - (UARTRxBuf1.read_pos - UARTRxBuf1.write_pos);
}
if ( len > DataLen )
{
ReadLen = DataLen;
}
else
{
ReadLen = len;
}
for ( i = 0u; i < ReadLen; i++ )
{
pData [ i ] = UARTRxBuf1.Rx_Buffer [ UARTRxBuf1.read_pos ];
UARTRxBuf1.read_pos = (UARTRxBuf1.read_pos + 1) % UART_RX_MAX_DEPTH;
}
return i;
}
......@@ -6,8 +6,10 @@
#include "R485_Communication_Matrix.h"
void UART_Put(uint32_t Value);
void UART_Put1(uint32_t Value);
void UART_Put2(uint32_t Value);
void Recv_Byte(void);
void Recv_Byte1(void);
void Recv_Byte2(void);
extern uint8_t GetDataCompare(void);
extern uint32_t readNum;
extern uint8_t BarCode[256];
......
......@@ -33,9 +33,9 @@
#define SW9 GPIO_IN_PORT09_PIN00
#define SW10 GPIO_IN_PORT10_PIN06
#define FUEL_RES_1 GPIO_OUT_PORT00_PIN13
// #define FUEL_RES_1 GPIO_OUT_PORT00_PIN13
// #define FUEL_RES_2 GPIO_OUT_PORT08_PIN12
#define FUEL_RES_3 GPIO_OUT_PORT08_PIN10
// #define FUEL_RES_3 GPIO_OUT_PORT08_PIN10
// #define FUEL_RES_4 GPIO_OUT_PORT08_PIN11
#define LINE_OUT_CHARGER GPIO_OUT_PORT10_PIN06//
......@@ -100,7 +100,7 @@
#define LINE_OUT_NEG_09 GPIO_OUT_PORT10_PIN04
#define LINE_OUT_NEG_10 GPIO_OUT_PORT00_PIN08
#define LINE_FUEL_RES01 GPIO_OUT_PORT00_PIN13
// #define LINE_FUEL_RES01 GPIO_OUT_PORT00_PIN13
#define LINE_FUEL_RES03 GPIO_OUT_PORT08_PIN10
......
......@@ -46,9 +46,9 @@ const uint16_t g_u16GPIOConfigArray[56U][2U] =
{0x0620u, 0x0600u},
{0x0000u, 0x0000u},
{0x0000u, 0x0000u},
{0x063Cu, 0x0630u},
{0x1A6Bu, 0x1A6Fu},
{0x79C3u, 0x79CFu},
{0x663Cu, 0x4630u},
{0x3A6Bu, 0x1A6Fu},
{0x19C3u, 0x39CFu},
{0x0000u, 0x0000u},
{0x0000u, 0x0000u},
{0x0000u, 0x0000u},
......@@ -78,7 +78,7 @@ const uint16_t g_u16GPIOConfigArray[56U][2U] =
{0x0000u, 0x0000u},
{0x0002u, 0x0200u},
{0x1800u, 0x1800u},
{0x0A60u, 0x0A60u},
{0x0E60u, 0x0E60u},
{0xE7FFu, 0xE7FFu},
{0x0000u, 0x0000u},
{0x0000u, 0x0000u},
......@@ -87,12 +87,12 @@ const uint16_t g_u16GPIOConfigArray[56U][2U] =
{0x0000u, 0x0000u},
{0x0000u, 0x0000u},
{0x0000u, 0x0000u},
{0x0010u, 0x0000u},
{0x0000u, 0x0000u},
{0x0000u, 0x0000u},
{0x0000u, 0x0000u},
{0x0010u, 0x0000u},
{0x00FFu, 0x00FFu},
{0x0200u, 0x0000u},
{0xC07Fu, 0xC07Fu},
{0x03FFu, 0xC07Fu},
{0xFFFFu, 0xFFFFu},
};
static void GPIO_PIN_Init(GPIO_Config_Mode_en_t enGPIOConfigMode)
......
......@@ -10,7 +10,7 @@
/**根据实际应用调整buf大小**/
#define UART_30_SEND_MAX 512UL
#define UART_31_SEND_MAX 512UL
#define UART_32_SEND_MAX 1UL
#define UART_32_SEND_MAX 512UL
#define UART_33_SEND_MAX 1UL
/***************************************************************/
......
......@@ -104,6 +104,15 @@ void Sys_Startup_Init(void)
loc_config.pfnUARTErrHandleCallBack = 0;
loc_config.pfnUARTReadMsgCallBack = UART_Put1;
UART_Init(UART_RLIN31, &loc_config);
loc_config.enUARTLINMode = MODE_UART;
loc_config.u32UARTbps = 115200;
loc_config.enUARTOrder = UART_LSB;
loc_config.en2UARTParity = UART_PARITY_DISABLE;
loc_config.en2UARTPolarity = UART_POLARITY_NORMAL;
loc_config.pfnUARTConfirmCallBack = 0;
loc_config.pfnUARTErrHandleCallBack = 0;
loc_config.pfnUARTReadMsgCallBack = UART_Put2;
UART_Init(UART_RLIN32, &loc_config);
LINE_OUT_NEG_01 = 1;
LINE_OUT_NEG_02 = 1;
LINE_OUT_NEG_03 = 1;
......
......@@ -939,17 +939,17 @@
#define INTRLIN32_ENABLE 0x00000000u
#endif
// #define INTRLIN32UR0_ENABLE (IRQ_TABLE_START + 0x00000294u)
#define INTRLIN32UR0_ENABLE (IRQ_TABLE_START + 0x00000294u)
#ifndef INTRLIN32UR0_ENABLE
#define INTRLIN32UR0_ENABLE 0x00000000u
#endif
// #define INTRLIN32UR1_ENABLE (IRQ_TABLE_START + 0x00000298u)
#define INTRLIN32UR1_ENABLE (IRQ_TABLE_START + 0x00000298u)
#ifndef INTRLIN32UR1_ENABLE
#define INTRLIN32UR1_ENABLE 0x00000000u
#endif
// #define INTRLIN32UR2_ENABLE (IRQ_TABLE_START + 0x0000029Cu)
#define INTRLIN32UR2_ENABLE (IRQ_TABLE_START + 0x0000029Cu)
#ifndef INTRLIN32UR2_ENABLE
#define INTRLIN32UR2_ENABLE 0x00000000u
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment