You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

dsPIC33EP256MC506 UART中断时TRMT非空问题求助及原因确认

dsPIC33EP256MC506 UART发送中断触发时机不符问题分析

场景与需求

基于dsPIC33EP256MC506的UART通信应用,参数配置为:9600波特率、8位数据位、无校验、2位停止位(9600,8,N,2)。核心需求是在**发送移位寄存器完全清空(TRMT=1,即最后一个停止位移出移位寄存器)**时触发发送中断。

配置代码

按照数据手册描述,将UTXISEL[1:0]配置为01(对应最后一个字符移位完成、传输操作全部结束时触发中断):

USTAbits.UTXISEL0 = 1;
USTAbits.UTXISEL1 = 0;

实际现象与手册偏差

手册中UTXISEL[1:0]=01的预期触发条件为TRMT=1,但实际测试时:

  • 中断触发时发送FIFO已空,但TRMT=0,说明移位寄存器仍在执行移位操作;
  • UTXISEL[1:0]=01与10两种模式无明显功能差异,均未在TRMT=1时触发中断。

问题根源确认

查阅Microchip官方勘误表后,确认此为硅片硬件Bug:当UTXISEL<1:0>=01时,发送中断可能在最后一位移出移位寄存器前提前触发,导致触发时机与手册描述不一致。


内容的提问来源于stack exchange,提问作者Max Kielland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 23:55:23