发 帖  
原厂入驻New
[问答] 如何使用uart_readtxstatus()函数?
122 UART 函数 参数
分享
你好,
对于我的项目,我使用的是UDB UART块。在通过UART块的数据表时,我遇到了API UARTHAREADTXXSTATUSER(),用于读取UART的TX状态寄存器。我需要编写一个函数“等待输出串行数据的传输完成”类似于ARDUINO的Sturial.FrHuSH()函数。
我想进一步了解UARTHAREADTXXSTATUS()函数及其返回参数。从数据表中,我可以收集的是,函数根据返回的缓冲区的内容分别返回值uARTHARTXYSTSSIOUT、UARTHARTXYSTSTYFIFOSULY、UARTHARTXYSTSTYFIFOSULL、UARTHARTXYSTSTYFIFONOTHONFULL。
这是否意味着函数根据上述参数分别返回值01HEX、02HEX、03HEX和04HEX?
谢谢,
加内什
0
2019-10-12 11:33:30   评论 分享淘帖 邀请回答

相关问题

12个回答
完整和FIFO-VILL可以同时激活。最好使用所提供的常数作为位掩码和过滤器,用于实际想要查找的状态。
2019-10-12 11:52:03 评论

举报

我想使用这个非常相同的功能来实现我的BLE设备睡觉之前的冲洗。当我发现这个函数时,我假设它将在标准的UART库中,但是我在任何库中都找不到它。所以这里有点不对劲。我搜索了CyPress网站,除了社区论坛的链接之外,没有其他相关的东西出现。
2019-10-12 12:10:13 评论

举报

名称基于您使用的组件不同:基于SCB的或基于UDB的。前者不传递状态,但可以使用UARTHSPIGARGETRXBuffResiZe()进行投票,以查看接收到多少字节。
鲍勃
2019-10-12 12:21:38 评论

举报

谢谢鲍伯的回复。YesI正在使用SCB模式。我试图解决的问题是,当系统在下一个指令上睡觉时,我的TX消息不会结束。这通常在使用阻塞TX刷新例程的其他微处理器上解决,以确保在继续之前清除所有字节。因此,我想TutuaToRead TxxStasuSUE()和UARTHOXTXYSTSSO完成将是我的解决方案。
我正在查看TopDebug配置文件中的MyART块,我注意到在UART高级环境下有许多中断配置选项可供我使用。这些能帮助我吗?认为“UART完成”可能起作用,但不确定是否需要选择内部或外部,然后确定下一步。这感觉有点像重新发明车轮,因为我相信其他人已经解决了这个问题。
2019-10-12 12:35:11 评论

举报

调用uARTHETGETTXBuffTestSub(),并等待UARTHI InthTXUUARTHY完成集。请不要忘记调用UARTHYLIOPER(),然后在再次发送整个系统时,将UTAXWAKEUP()发送到AUTHARWAKEUP()。
鲍勃
2019-10-12 12:41:47 评论

举报

我不是GoGuangToGETTXBuffTestSoCube()来触发AuARTHI TIN TXUUARTZY。
我已经启用中断例程UnGuangTraceNeabLeTin();(我假设这是必需的)。我也启用了全局中断。
为了测试,我发送了一个长长的StrutualgUARTPT字符串(Hello),这是一个新的测试字符串!123567890 \r\n“”;
然后,我只是等待FuuARTHETGETXBuffTestStudio()到ReTurnAtgInTyxTuxUARTZY,然后移动到下一个例程,但这永远不会着火。
我认为我的部分问题是知道如何编写中断例程。我已经设置了内部中断的UART SCB。在我的C代码中,我不太确定如何正确地处理这个问题。
有什么建议吗?
谢谢
2019-10-12 13:09:35 评论

举报

能否请您发布您的完整项目,以便我们都可以查看您的所有设置。要做到这一点,使用C造饰者和GT;文件-GT;创建工作区束(最小)并附加结果文件。
鲍勃
2019-10-12 13:24:22 评论

举报

这是一个简单的测试。代码驻留在主程序()中。
UITC8 XX=0;(xx=0;xx和lt;5;XX +){UARTARUUTARTPUSTSHIPE(“快速棕色狐狸跳过懒惰狗”)123567890 \ r\n);UARTHEL();CyDelay(1000);UARTHI WAKEUP();}
在代码被上传和执行的时候,字符串被截断。因此,我想使用中断来检查UART TX在调用UARTHYSLIVER()之前完成的时间。我不能让这个工作。
我已经设置了我的UARTSCB组件有一个内部中断,并勾选“UART完成”作为中断源。
在上述例程之前,我添加了以下代码:
UARTHARSTART();UARTHETSucCudioStutsTracle(UARTHI ISRH-HANDER);UARTHULD STATXBASTMODMODEL(UARTHI TIN TXXUARTZEN);UARTHAREN AbEnLeTin();
CyGloalActuabess;/*取消注释此行以启用全局中断。*/
MyCutualDebug处理程序
CysISR(UARTHI ISRY-HANDER){}
据我所知,这并没有被触发。IFI放置UARTHOLSEEPER();CyDelay(1000);UARTHI WAKEUP();在这个函数中没有发生任何事情。
任何提示非常感谢。
我已经附加了工作区包。
Cyrkkas.CaseVo.01.Zip
577.1 K
2019-10-12 13:30:30 评论

举报

试试这个。你必须换回你的设备。
鲍勃
Currkk.Access 01y0.Zip
23.8 K
2019-10-12 13:37:14 评论

举报

嗨,鲍伯,
这一胎救了我一天。
谢谢
2019-10-12 13:52:01 评论

举报

很好,当有任何帮助的时候。
鲍勃
2019-10-12 14:09:59 评论

举报

只有小组成员才能发言,加入小组>>

374个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /10 下一条

快速回复 返回顶部 返回列表