目录
一、新建工程
如需获取详情,可进主页,+qun,自行获取~
二、引脚配置
三、外设配置
配置完毕后更新代码
1、添加外设
2、配置串口信息1
3、配置串口信息2(回调函数)
4、中断外设配置
四、代码编写
void UART_13_Callback(const uint8 HwInstance, const Lpuart_Uart_Ip_EventType Event, void *UserData)
{
(void)HwInstance; // 避免未使用参数编译警告
(void)UserData; // 避免未使用参数编译警告
switch(Event)
{
case LPUART_UART_IP_EVENT_RX_FULL: // 接收缓冲区满事件
{
// 检查是否收到换行符或接收缓冲区即将溢出
if ((rxBuffer[rxBufferIdx] != '\n') && (rxBufferIdx != (BUFFER_SIZE - 2U)))
{
// 继续接收下一个字符
rxBufferIdx++;
Lpuart_Uart_Ip_SetRxBuffer(LPUART_UART_IP_INSTANCE_USING_13,&rxBuffer[rxBufferIdx],1U);
}
else
{
// 将接收缓冲区的数据复制到发送缓冲区,并初始化接收缓冲区
memcpy(txBuffer,rxBuffer,rxBufferIdx+1);
Lpuart_Uart_Ip_AsyncSend(LPUART_UART_IP_INSTANCE_USING_13,txBuffer,1);
txBufferIdx++;
memset(rxBuffer,0,rxBufferIdx+1);
test = rxBufferIdx + 1;
rxBufferIdx = 0;
Lpuart_Uart_Ip_SetRxBuffer(LPUART_UART_IP_INSTANCE_USING_13,&rxBuffer[rxBufferIdx],1U);
};
}break;
case LPUART_UART_IP_EVENT_TX_EMPTY: // 发送缓冲区空事件
{
// 检查是否所有数据都已发送
if(txBufferIdx > test - 1)
{
// 重置发送缓冲区索引
txBufferIdx = 0;
}
else
{
// 继续发送下一个字符
Lpuart_Uart_Ip_SetTxBuffer(LPUART_UART_IP_INSTANCE_USING_13,&txBuffer[txBufferIdx++],1U);
}
}break;
case LPUART_UART_IP_EVENT_END_TRANSFER: // 传输结束事件
{
// 此处可添加传输结束后的处理逻辑
}break;
case LPUART_UART_IP_EVENT_ERROR: // 错误事件
{
// 此处可添加错误处理逻辑
}break;
default:
{
// 处理未知事件
}break;
}
}
五、注意事项
此处注意前文提到的一个回调的配置,应调用此处的回调函数
如有侵权,联系删除。