[Fix] 解决串口打印错误问题
1. 待优化:使用snprintf格式化,但长度限定为32,与128有差距; 2. 开启Timer; 3. 解决字符串的串口打印错误;
This commit is contained in:
@ -23,6 +23,8 @@
|
|||||||
/*= !!!<21><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ӳ<EFBFBD><D3B2>ƽ̨ͷ<CCA8>ļ<EFBFBD> =======================================*/
|
/*= !!!<21><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ӳ<EFBFBD><D3B2>ƽ̨ͷ<CCA8>ļ<EFBFBD> =======================================*/
|
||||||
#include "board.h" //E15-EVB02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#include "board.h" //E15-EVB02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
#include "ebyte_debug.h" //E15-EVB02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
#include "ebyte_debug.h" //E15-EVB02 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdio.h>
|
||||||
/*= !!!<21><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =======================================*/
|
/*= !!!<21><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =======================================*/
|
||||||
extern uint8_t RxBuffer[64];
|
extern uint8_t RxBuffer[64];
|
||||||
extern uint8_t BufferPing[5];
|
extern uint8_t BufferPing[5];
|
||||||
@ -69,87 +71,60 @@ void Ebyte_Port_TransmitCallback( uint16e_t state )
|
|||||||
*/
|
*/
|
||||||
void Ebyte_Port_ReceiveCallback( uint16_t state, uint8_t *buffer, uint8_t length )
|
void Ebyte_Port_ReceiveCallback( uint16_t state, uint8_t *buffer, uint8_t length )
|
||||||
{
|
{
|
||||||
uint8_t j, pcEchoLength;
|
uint8_t j, pcEchoLength;
|
||||||
uint8_t *p;
|
uint8_t *p;
|
||||||
/* <20><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> */
|
int8_t rx_data[32] = {0};
|
||||||
if( state &= 0x0002 )
|
|
||||||
{
|
|
||||||
//To-do ʵ<><CAB5><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
|
|
||||||
/* ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ping pongָ<67><D6B8> */
|
/* <20><><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD> */
|
||||||
if( length == 4 || length == 5 )
|
if( state &= 0x0002 ) {
|
||||||
{
|
//To-do ʵ<><CAB5><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
p = buffer;
|
/* ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD>ping pongָ<67><D6B8> */
|
||||||
for( j = 0; j < 4; j++ )
|
if( length == 4 || length == 5 ) {
|
||||||
{
|
p = buffer;
|
||||||
if( BufferPing[j] != *p++ )
|
for( j = 0; j < 4; j++ ) {
|
||||||
{
|
if( BufferPing[j] != *p++ )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if( j == 4 ) { //<2F>Ƚϵ<C8BD><CFB5><EFBFBD>ĩβ<C4A9><CEB2>ʾ<EFBFBD><CABE>ȫƥ<C8AB><C6A5>ping
|
||||||
|
Callback_isPingCheckReady = 1;//֪ͨ<CDA8>ظ<EFBFBD>Pong
|
||||||
|
if( length == 5 && PC_isConnected )
|
||||||
|
BufferPong[4] = buffer[4];//<2F><>5<EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
|
||||||
|
}
|
||||||
|
|
||||||
}
|
if( j!=4 && length == 5 && PC_isConnected ) {
|
||||||
//<2F>Ƚϵ<C8BD><CFB5><EFBFBD>ĩβ<C4A9><CEB2>ʾ<EFBFBD><CABE>ȫƥ<C8AB><C6A5>ping
|
p = buffer;
|
||||||
if( j == 4 )
|
|
||||||
{
|
|
||||||
Callback_isPingCheckReady = 1;//֪ͨ<CDA8>ظ<EFBFBD>Pong
|
|
||||||
if( length == 5 && PC_isConnected )
|
|
||||||
{
|
|
||||||
BufferPong[4] = buffer[4];//<2F><>5<EFBFBD>ֽ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
for( j = 0; j < 4; j++ ) {
|
||||||
|
if( BufferPong[j] != *p++ )
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if( j!=4 && length == 5 && PC_isConnected )
|
if( j == 4 ) {//<2F><>ȫƥ<C8AB><C6A5>pong
|
||||||
{
|
if( 0x01 == buffer[4] )
|
||||||
p = buffer;
|
Ebyte_DEBUG_CommandEcho( ( uint8_t* )SimulatedCommandsWireless1, EBYTE_CMD_PACKAGE_LENGTH, PcEchoBuffer, &pcEchoLength );
|
||||||
|
else
|
||||||
|
Ebyte_DEBUG_CommandEcho( ( uint8_t* )SimulatedCommandsWireless2, EBYTE_CMD_PACKAGE_LENGTH, PcEchoBuffer, &pcEchoLength );
|
||||||
|
Ebyte_BSP_UartTransmit( PcEchoBuffer, pcEchoLength );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for( j = 0; j < 4; j++ )
|
Ebyte_BSP_LedControl( BSP_LED_1, ON );
|
||||||
{
|
|
||||||
if( BufferPong[j] != *p++ )
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
if( ! PC_isConnected ) {
|
||||||
|
snprintf(rx_data, sizeof(rx_data), "%s", buffer);
|
||||||
|
EBYTE_LOG("\r\n Receive Data: %s", rx_data);
|
||||||
|
}
|
||||||
|
|
||||||
if( j == 4 )//<2F><>ȫƥ<C8AB><C6A5>pong
|
Ebyte_BSP_LedControl( BSP_LED_1, OFF );
|
||||||
{
|
}
|
||||||
if( 0x01 == buffer[4] )
|
else if ( state &= 0x0200 ) { /* <20><><EFBFBD><EFBFBD>: <20>쳣<EFBFBD><ECB3A3>ʱ */
|
||||||
{
|
//To-do ʵ<><CAB5><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||||
Ebyte_DEBUG_CommandEcho( ( uint8_t* )SimulatedCommandsWireless1, EBYTE_CMD_PACKAGE_LENGTH, PcEchoBuffer, &pcEchoLength );
|
}
|
||||||
}
|
else { /* <20><><EFBFBD><EFBFBD>: δ֪<CEB4><D6AA><EFBFBD><EFBFBD> */
|
||||||
else
|
/* <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2>
|
||||||
{
|
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1:SPIͨ<49>Ų<EFBFBD><C5B2><EFBFBD>ȷ 2:ģ<>鹩<EFBFBD>粻<EFBFBD><E7B2BB> */
|
||||||
Ebyte_DEBUG_CommandEcho( ( uint8_t* )SimulatedCommandsWireless2, EBYTE_CMD_PACKAGE_LENGTH, PcEchoBuffer, &pcEchoLength );
|
while(1);
|
||||||
}
|
}
|
||||||
Ebyte_BSP_UartTransmit( PcEchoBuffer, pcEchoLength );
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Ebyte_BSP_LedControl( BSP_LED_1, ON );
|
|
||||||
|
|
||||||
if( ! PC_isConnected )
|
|
||||||
{
|
|
||||||
|
|
||||||
EBYTE_LOG("\r\n Receive Data:");
|
|
||||||
Ebyte_BSP_UartTransmit ( buffer, length );
|
|
||||||
}
|
|
||||||
|
|
||||||
Ebyte_BSP_LedControl( BSP_LED_1, OFF );
|
|
||||||
}
|
|
||||||
/* <20><><EFBFBD><EFBFBD>: <20>쳣<EFBFBD><ECB3A3>ʱ */
|
|
||||||
else if ( state &= 0x0200 )
|
|
||||||
{
|
|
||||||
//To-do ʵ<><CAB5><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
||||||
}
|
|
||||||
/* <20><><EFBFBD><EFBFBD>: δ֪<CEB4><D6AA><EFBFBD><EFBFBD> */
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2>
|
|
||||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1:SPIͨ<49>Ų<EFBFBD><C5B2><EFBFBD>ȷ 2:ģ<>鹩<EFBFBD>粻<EFBFBD><E7B2BB> */
|
|
||||||
while(1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -235,10 +235,10 @@ void Ebyte_BSP_Init( void )
|
|||||||
Ebyte_BSP_SPI_Init();
|
Ebyte_BSP_SPI_Init();
|
||||||
|
|
||||||
/* <20><>ʱ<EFBFBD><CAB1> <20><>ʼ<EFBFBD><CABC> */
|
/* <20><>ʱ<EFBFBD><CAB1> <20><>ʼ<EFBFBD><CABC> */
|
||||||
// Ebyte_BSP_TIMER_Init();
|
Ebyte_BSP_TIMER_Init();
|
||||||
|
|
||||||
/* <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC> */
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD> <20><>ʼ<EFBFBD><CABC> */
|
||||||
// Ebyte_BTN_FIFO_Init( &BSP_BTN_FIFO );
|
Ebyte_BTN_FIFO_Init( &BSP_BTN_FIFO );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* !
|
/* !
|
||||||
@ -334,7 +334,7 @@ void Ebyte_BSP_UartTransmit( uint8_t *buffer , uint16_t length )
|
|||||||
|
|
||||||
for( i = 0; i < length; i++ ) {
|
for( i = 0; i < length; i++ ) {
|
||||||
while(RESET == usart_flag_get(LOG_UART, USART_FLAG_TBE));
|
while(RESET == usart_flag_get(LOG_UART, USART_FLAG_TBE));
|
||||||
usart_data_transmit(LOG_UART, *buffer);
|
usart_data_transmit(LOG_UART, buffer[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -75,7 +75,7 @@ void Ebyte_E48x_IntOrPollTask( void )
|
|||||||
radio_rece_data_flag = gpio_input_bit_get( BSP_GPIO_PORT_E48_GP4 , BSP_GPIO_PIN_E48_GP4);
|
radio_rece_data_flag = gpio_input_bit_get( BSP_GPIO_PORT_E48_GP4 , BSP_GPIO_PIN_E48_GP4);
|
||||||
/* <20>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
/* <20>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||||
if( radio_rece_data_flag != RESET ) {
|
if( radio_rece_data_flag != RESET ) {
|
||||||
vRadioGetPacket(rf_rxbuffer,&rf_rxsize);
|
vRadioGetPacket(rf_rxbuffer, &rf_rxsize);
|
||||||
Ebyte_Port_ReceiveCallback(0x0002,rf_rxbuffer,rf_rxsize);
|
Ebyte_Port_ReceiveCallback(0x0002,rf_rxbuffer,rf_rxsize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user