完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
你好,
我仍在学习如何使用PSOC4中的中断,我有以下情况: CysISR(UARTHARRXYtiN MySuffEntIn){ BLEtoUART(TestBuf,4, 1);GECKOU-UARTHI SPIUARCULRXXBuffER();源= GECKOU-UARTHEGTRXBASTUSTORMCERASKEDE();GECKOU-UARTAREX CURLRXBASESTORKStask(源); } VS CysISR(UARTHARXRXYTIN MySuffEntIn){源=GECKOYUARTGESTRXBASTUSTORMCEASKEDE();GECKOU-UARTARCURLCXRX中断源(源);BLEtoUART(TestBuf,4, 1);GECKOU-UARTHIPSPUARTECREXRXBuffER(); } VS CysISR(UARTHARRXYTIN MySuffEntIn){ BLEtoUART(TestBuf,4, 1);GECKOU-UARTHI SPIUARCULRXXBuffER();源= GECKOU-UARTHEGTRXBASTUSTORMCERASKEDE();GECKOU-UARTAREX CURLRXBASESTORKStask(源); } 第二个代码段执行两次BLIUTART(TestBuf,4,1)。第一个是好的,第三个是好的。请告诉我如何正确处理UART中断。我最终想要实现的是: 1。检测UART何时接收字符 2。扫描接收到的帧,用于指示有效消息的开始和结束标志 三。提取消息 无论如何,只有当UART接收到特定的标志字符时才抛出中断? 谢谢你的澄清, 拍打 |
|
相关推荐
2个回答
|
|
@ Pat
不要清除接收缓冲区。只有在出现错误的情况下才应该这样做。你应该设置一个(不稳定的)!)处理程序中的标志。 不要在中断处理程序中发送数据,这可能会使系统停滞或与当前处理的中断发生冲突。而是为GeTrxBuffResiZe()的标志或投票进行投票,以查看是否有任何字符已经到达。用适当的读取函数从RxBuffer中选取字符。 清除所有中断源,或者无法看到新的错误发生。 我通常建议将RX和Tx缓冲器增加到80,并让组件进行所有处理。只需查询GeTrxBuffResiz()。 当然,你可以写一个练习自己循环缓冲的函数,给你更多的灵活性。 您可以触发自己的中断:使用具有硬件连接的ISR组件并调用ISRYStPixIn() 鲍勃 |
|
|
|
在中断变量上使用易失性。
当变量的值可能意外改变时,应该声明一个变量。在实践中,只有三种变量可以改变: 1。内存映射外围寄存器 2。中断服务程序修改的全局变量 三。多线程应用程序中由多个任务访问的全局变量 |
|
|
|
只有小组成员才能发言,加入小组>>
749个成员聚集在这个小组
加入小组2054 浏览 1 评论
1809 浏览 1 评论
3621 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1746 浏览 6 评论
1499 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
483浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
336浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
400浏览 2评论
341浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
834浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-7 16:36 , Processed in 0.952896 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号