完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我今天花了一些时间来追查提供的UART代码中的bug。
我有一个大型(4K)软件RX FIFO配置在PSoC BLE UART(RS-232数据)。 当RX缓冲区满过时,由PSoC Creator生成的ISR代码会被卡住:它将相关的IRQ掩码设置为0x5(NoToWin和Stand),但ISF-代码至少在FIFO满时没有作为源清除触发器的动作,并且只显式清除NoSUnLoad。因此,它被困在ISR中,IRQ源为0x01(触发器,但不是No.NoWin)。 我的快速解决方案是清除触发器作为IRQ源。更好的是ISR的明确触发,但我不确定这意味着什么。 在一个相关的说明,我觉得很怪异的API的UART。我需要发送数据块,但只提供最基本的“放置字符串”函数用于UART。我一直在使用SPI函数(PuxStudio,UARTHI SPIUARGETRXBuffelStand)函数获得相同的结果。我找不到任何“块读”函数,UARTHUARUTGETBYTED()不返回字节等。 最好的问候。 |
|
相关推荐
7个回答
|
|
欢迎来到论坛!
我建议你创建一个“例如我“有cypressed知情。在这页的顶部支持&;社区>;技术支持- >;创建一个例如我 最好是把一个项目再现误差。 鲍勃 |
|
|
|
我找不到一个叫做“触发器”的中断源。你的意思是“RX FIFO级别”吗?默认情况下,不应该启用它,因此它永远不会触发中断——您可能手动启用它吗?
你能做什么:注册自定义中断处理程序,清除中断源。它从内部ISR调用。 |
|
|
|
也许我应该问:你使用的是基于SCB的UART OPR,基于UDB的吗?
对于基于SCB的,有UTARStudioPuxStudio需要UTI8数组,而SPUUARTPUT数组可以根据UART配置而使用UIT8或UIT16。是的,命名是奇怪的,因为这是一个多功能组件。 |
|
|
|
|
|
|
|
您正在查看的寄存器仅用于基于SCBI的UART,您不使用它。如何确定当前特定ISR需要中断哪些中断?
(BTW:从SCB0IX内RX寄存器中的触发器的描述,它是Rx1级中断) 基于UDB的UART不使用任何标准寄存器。它们的组件实现使用内部中断组件(至少我是这样认为的),这是由UDB输出触发的。 您使用的是另一个基于SCB的组件,它可能会请求您正在查看的中断吗? |
|
|
|
|
|
|
|
如果它是一个SCB UART——检查是否在UART配置中启用了“RX级别”中断。在测试的时候,我看到这个标志设置的变化值来uart_deb_uart_intr_rx_mask寄存器0x05 -也许那是你的问题吗?
(我看不到任何其他地方,这个中断源启用) |
|
|
|
只有小组成员才能发言,加入小组>>
716个成员聚集在这个小组
加入小组1901 浏览 1 评论
1652 浏览 1 评论
3405 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1568 浏览 6 评论
1380 浏览 1 评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
180浏览 2评论
179浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
318浏览 2评论
344浏览 1评论
58浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-23 16:22 , Processed in 0.873192 second(s), Total 77, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号