完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一个应用程序正在查询远程设备的数据。轮询设备需要能够确定远程单元何时响应或不响应。
此时,我有一个错误计数,每次轮询没有响应,当计数超过时,操作员得到警告。如果远程单元再次响应,则操作员指示远程单元是OK的。 在测试过程中,我将电缆移到远程单元并得到警告。然而,当重新连接某些东西时,系统检测到可用的设备并给出通知,但通常没有,并且代码似乎停止响应。当“暂停”函数在这种情况下不起作用时,我无法查看调用堆栈以查看它在哪里。 我在丢失远程资源库之后做的是停止并重新启动UART组件。我不认为这是最好的方法,不能找到一个明确的教程,从UART错误恢复。 是否有一个状态,我可以读取和重置标志后,错误检测,使UART可以恢复硬件故障(串行线断开和重新连接) 谢谢 |
|
相关推荐
9个回答
|
|
中断子程序后有没有清除中断位的方法????
|
|
|
|
|
|
|
|
这是我的密码
我试图获得32字节数据从UART使用入侵,但它不工作。 当我发送32字节的火车,iintrupt是trigred但不存储数据 但是,虽然Intut是三叉树,我再次发送它存储的数据。 它也返回子程序却又一次intrupt子程序 无符号字符CARARDATA1〔31〕; 空主(空){UARTHAR11START(UARTHARPARITY NONO); 开始:uart_1_cputstring(“ R 启动rn”);a = 0;x = 0;uart_1_intcntl(uart_1_enable_rx_int);而(!X);开始; } uart_1_rx_isr_c虚空(void){ uart_1_intcntl(uart_1_disable_rx_int);uart_1_cputstring(“rn *我* rn”);a = 0;关联交易:如果(uart_1_breadrxstatus() &;uart_1_rx_complete)/ /如果(uart_1_bcmdcheck()){ cuartdata1 [一] = uart_1_creadchar();/ / uart_1_putchar(cuartdata1 [一]);+ +;LED_4_switch(0x01);}如果(<;32){ goto RPT;} uart_1_putchar(cuartdata1 [零]);uart_1_putchar(cuartdata1 [1 ]);uart_1_putchar(cuartdata1 [2 ]);uart_1_putchar(cuartdata1 [3 ]);uart_1_putchar(cuartdata1 [4 ]);uart_1_putchar(cuartdata1 [5 ]);uart_1_putchar(cuartdata1 [6 ]);uart_1_putchar(cuart资料[ 7 ]);uart_1_putchar(cuartdata1 [ 8 ]);uart_1_putchar(cuartdata1 [ 9 ]);uart_1_putchar(cuartdata1 [ 10 ]);uart_1_putchar(cuartdata1 [ 11 ]);uart_1_putchar(cuartdata1 [ 12 ]);uart_1_putchar(cuartdata1 [ 13 ]);uart_1_putchar(cuartdata1 [ 14 ]);uart_1_putchar(cuartdata1 [ 15 ]);uart_1_putchar(cuartdata1[ 16 ]);uart_1_putchar(cuartdata1 [ 17 ]);uart_1_putchar(cuartdata1 [ 18 ]);uart_1_putchar(cuartdata1 [ 19 ]);uart_1_putchar(cuartdata1 [ 20 ]);uart_1_putchar(cuartdata1 [ 21 ]);uart_1_putchar(cuartdata1 [ 22 ]);uart_1_putchar(cuartdata1 [ 23 ]);uart_1_putchar(cuartdata1 [ 24 ]);uart_1_putchar(cuartdata1 [ 2五]);uart_1_putchar(cuartdata1 [ 26 ]);uart_1_putchar(cuartdata1 [27 ]);uart_1_putchar(cuartdata1 [ 28 ]);uart_1_putchar(cuartdata1 [29 ]);uart_1_putchar(cuartdata1 [30 ]);uart_1_putchar(cuartdata1 [31 ]);x = -1;回报;} |
|
|
|
@ DEVO36
请不要劫持一个线程从他人,你可以启动一个新线程与一个新的标题,所以这个论坛的成员都是能够考虑答案,查询。 祝贺你!这是我第一次发现了一个“转到”在这里提出声明的代码片段。 通过UART发送一个字符将使用堵塞的功能,是一个绝对的中断处理程序不走。当你描述一点你打算做什么(为什么),当你把你的完整的项目与您所有的设置,我们将能够帮助你更好的。这样做,使用的创造者- >;文件& gt;创建工作包(最小的)并将结果文件。鲍勃 |
|
|
|
鲍勃,
我不知道发生了什么事,因为我收到了“回复”我的帖子,它没有被复制到我们的讨论。 我发布的最后一点代码看起来还好吗? IE. 将数据读入变量, 检查是否发生超载或停止错误 如果没有,则将字节放入循环缓冲区(在主循环中稍后处理) 我的代码似乎正在运行,但不确定是否还有隐藏的“GOTCHA”,当串行端口电缆被移除并重新连接时,它有可能锁定。 似乎,如果我检测到远程单元的非响应,如果我真的停止并重新启动UART,我的代码只能工作。 |
|
|
|
|
|
|
|
鲍勃,
好的,我明白了。谢谢。 我现在几乎所有的项目中运行的代码(蓝牙、RS485、SPI例程用于时钟和FRAM、EEPROM存储)只是在UB-UART和PT100热工程上工作(不得不订购新一批的芯片,因为5LP的099个变体没有20位ADC,但是096个变种确实如此。 |
|
|
|
|
|
|
|
我有一些关于PCB布局和信号完整性的附加信息,不能
似乎邮政邮政档案,如果你想它张贴你的电子邮件地址。 关于ISR,一般来说,您希望尽量减少F-()调用。 结果在大量堆栈推送和抢劫MIPS中,增加了等待时间。最好的办法是 在ISR处理中设置标志、退出和进程。 问候,Dana。 |
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2075 浏览 1 评论
1829 浏览 1 评论
3645 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1766 浏览 6 评论
1517 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
516浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
370浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
413浏览 2评论
360浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
868浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 09:10 , Processed in 1.360190 second(s), Total 95, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号