点击上方蓝字关注我们
jilbhko0bgd64013331329.png
一、新建工程
etyowj1fnpg64013331429.png
可参考往期推文:
https://mp.weixin.qq.com/s/W_HxZ89pkW9VvyGt2mYzwA
二、引脚配置
此实例选择串口13进行配置:
htq2nudsun264013331529.png
dtlkmstpjfy64013331630.png
三、外设配置
添加外设:
ai4atl2tscj64013331730.png
配置串口信息1:
svandgcmn1m64013331830.png
配置串口信息2(回调函数):
d3ei5auo2ou64013331930.png
中断外设配置:
0vzjmdw4ay564013332030.png
配置完毕后更新代码。
四、部分代码展示
/** * @brief UART_13回调函数 * * 该函数作为LPUART_13的中断服务程序使用,根据接收到的事件类型执行相应的处理逻辑。 * 主要功能包括处理接收缓冲区满和发送缓冲区空的事件,以及相应的数据传输逻辑。 * * @param HwInstance 硬件实例标识,此处忽略 * @param Event 事件类型,指示当前中断的原因 * @param UserData 用户数据,此处忽略 */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] != '
') && (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; }}
五、注意事项
4sh3oe5mzxb64013332130.png
此处注意前文提到的一个回调的配置,应调用此处的回调函数。
guozks1xd2k64013332230.png
欢迎转发分享给需要的好友!
hmp1yykleua64013332330.png
微信号:zls_it
扫描下方二维码添加充电站小助手微信,可以加入微信交流群
群内每天分享一些大厂的经典C语言、C++面试题以及知识点解析、技术话题分享、常见错误、易混淆的概念答疑等,等你来Get!!
byag21gga3b64013332430.png
s4lzastbikl64013332530.png
START
4lrnt0pkzxu64013332630.png
13iol0aujpw64013332730.png
cvqvqyo3voe64013332830.png
|