<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[串口卡死或不进中断使用注意事项]]></title><description><![CDATA[<p dir="auto">问题描述：客户在使用串口的过程中会概率性的出现丢数据和卡死的情况，表现为串口中断不再响应或者进入Hardfault中断；<br />
<img src="https://yt-static-main.oss-cn-shanghai.aliyuncs.com/nodebb/18/6103d6dc-218d-4c36-8867-43be3cd1cf08.png" alt="b77f8618-9068-4456-854e-38e287f84795-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">解决办法：<br />
1、检查串口是否会产生ERROR事件，若产生ERROR事件，需要对ERROR事件进行处理，SDK自带的ERROR事件处理完以后会关闭接收，如果需要连续接收需要在Uart_RxCallback函数UART_EVENT_ERROR事件里面设置重新启动串口接收；<br />
<img src="https://yt-static-main.oss-cn-shanghai.aliyuncs.com/nodebb/18/758dfa94-2728-4cf9-a3df-7c561d0c7344.png" alt="a9a82f1f-b841-4a32-9e56-e29fd811c1f3-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">2、检查串口接收模式为连续接收模式还是非连续接收模式，如果为非连续接收模式，发送方为不定长时间间隔的数据过来就会存在漏接收的情况，这种情况发生在串口Uart_RxCallback执行完未能立即重新启动串口接收，需要在主循环里面启动接收就会有一定的非接收窗口期，这种情况主要在TIMEOUT中断模式上比较容易出现。解决这个问题就需要把串口的接收模式配置为连续接收模式不要开TIMEOUT中断，只配置LINFlexD_UART_DRV_InstallRxCallback回调函数就行，另外设置接收buf为1个字节，在Uart_RxCallback回调函数的UART_EVENT_RX_FULL事件里面通过LINFlexD_UART_DRV_SetRxBuffer函数继续设置一个字节的接收缓冲区，继续下一次接收，重复不断！<br />
<img src="https://yt-static-main.oss-cn-shanghai.aliyuncs.com/nodebb/18/d13c0d0d-a5d7-4770-9abd-8613805f502a.png" alt="b6cd21a5-dfbe-4dfa-a867-71e3dfc84c9c-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">3、检查Flash的擦写代码执行位置是否合理，如果用户数据存放的Flash和运行程序的Flash在同一个PFlash，在操作PFlash的时候就需要关闭全局中断再操作，这样就会造成其他的中断任务被打断或者出错进入hardfault，建议PFlash的操作在数据接收任务不是很急迫的时候进行，比如串口或者CAN空闲的时候或者在掉电前关闭外设后再去操作Flash，起到一个保险的作用。<br />
<img src="https://yt-static-main.oss-cn-shanghai.aliyuncs.com/nodebb/18/d474529b-92cf-4611-892b-ea8cc0be7b14.png" alt="ff134289-2fb7-417f-8000-a4a8a87f46c3-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">附件：<a href="https://yt-static-main.oss-cn-shanghai.aliyuncs.com/nodebb/18/d63a957f-1c7c-4f79-b8d0-261ff20dfd88.zip" rel="nofollow ugc">Linflexd_Uart_Continuous_Transmission_Demo.zip</a></p>
]]></description><link>https://forum.ytmicro.com/topic/895/串口卡死或不进中断使用注意事项</link><generator>RSS for Node</generator><lastBuildDate>Tue, 27 Oct 2026 14:51:22 GMT</lastBuildDate><atom:link href="https://forum.ytmicro.com/topic/895.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Apr 2025 09:58:01 GMT</pubDate><ttl>60</ttl></channel></rss>