主题中讨论的其他器件:SysConfig
工具与软件:
您好!
目前我正在处理 basic_ble 外设配置文件项目。
void UART_Init()
{
/* Create a UART in CALLBACK read mode */
UART2_Params_init(&uartParams);
uartParams.readMode = UART2_Mode_CALLBACK;
uartParams.readCallback = UARTCallback;
uartParams.readReturnMode = UART2_ReadReturnMode_PARTIAL;
uartParams.baudRate = 115200;
uartParams.eventCallback = UARTEventCallback;
uartParams.eventMask = UART2_EVENT_OVERRUN;
uart = UART2_open(CONFIG_UART2_0, &uartParams);
if (uart == NULL)
{
/* UART2_open() failed */
while (1)
{
}
}
// Setup an initial read
UART2_read(uart, &uartReadBuffer, UART_MAX_READ_SIZE, 0);
}
void UARTCallback(UART2_Handle handle, void *buffer, size_t count, void *userArg, int_fast16_t status)
{
uartPacketSize = count;
BLEAppUtil_invokeFunction(HandlingFunction,buffer);
}
typedef struct
{
uint8_t pkt_len;
uint8_t *data;
}api_data;
void HandlingFunction(char *pData)
{
api_data *api_pkt_ptr = (api_data*)pData;
uint16_t datalen = uartPacketSize;
if (api_pkt_ptr->pkt_len == datalen)
{
UART2_write(uart,pData,uartPacketSize,0);
}
else
UART2_write(uart,"Receive data not maching",24,0);
memset(&uartReadBuffertemp[0], 0, sizeof(UART_MAX_READ_SIZE));
UART2_read(uart, uartReadBuffer, UART_MAX_READ_SIZE, 0);
}
我正在发送一个有效载荷、其中包含第一个字节是有效载荷的长度、其余字节是数据。
虽然按预期在 UART 上以300ms 的间隔连续发送数据并按预期在 UART 上发送数据、但 在 UART pData 长度(api_pkt_ptr->pkt_len)上以100ms 的间隔连续发送数据且 uartPacketSize 不匹配。
SDK 版本:simplelink_lowpower_f3_sdk_8_10_01_02 (外设)
CCS 版本:CCS 12.7.1
此致、
Vignesh。