完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
新的PSoC可能在上一篇文章中看到,但是我正在与UART合作。我想知道为什么我的if语句没有得到任何真正的?我几乎肯定这是一件简单的事。我查看了UART模块的数据表。
本质上,我正在寻找状态寄存器准备轮询(如要求) Uti16读写器=0; UIT16写重复符=0; 当(RealIdult&lt;4096){ 如果(uARTHAREADRXSTATUSSUE)= = UARTHARXRXSTSTYFIFOSO NOTAVTY){ RealvurRay[读数器] = UARTHETGETCHARE(); 读写器+; } 如果(UARTHARETCTXSTATUSSUE)= = UARTHOTXXSTSTYFIFOXNOTHOLL FULL){ UARTHI PUTCHAR(SDENARDATAL [读数器]); 写迭代器+; } 以上来自于百度翻译 以下为原文 New to PSoC as maybe seen in a previous post, however I'm working with UART. I'm wondering why my if statements aren't getting any coming in true? I'm almost positive it's something simple. I looked at the datasheet for the UART module. Essentially I'm looking for the status registers to be ready by polling(as asked for) uint16 readIterator=0; uint16 writeIterator=0; while(readIterator<4096){ if(UART_ReadRxStatus()==UART_RX_STS_FIFO_NOTEMPTY ){ receiveArray[readIterator]=UART_GetChar(); readIterator++; } if(UART_ReadTxStatus()==UART_TX_STS_FIFO_NOT_FULL ){ UART_PutChar(sendArray[readIterator]); writeIterator++; } |
|
相关推荐
6个回答
|
|
一般来说,仅仅发布代码来获得帮助是不够的。
还有其他问题会影响故障排除,比如HW。 设置等。 考虑发布你的项目,让生活更容易排除故障。 “文件”创建者 “创建工作区束” 问候,Dana。 以上来自于百度翻译 以下为原文 Its not enough to just post code to get help, generally speaking. There are other issues that can affect troubleshooting, like HW setup, etc.. Consider posting your project, makes life easier to troubleshoot. “File” Creator “Create Workspace Bundle” Regards, Dana. |
|
|
|
我刚刚意识到,我把它放在错误的子论坛中,意在张贴这是PSoC 5,但是文件是附加的。
谢谢及时的回复。 邮编 519.2 K 以上来自于百度翻译 以下为原文 I just realised I posted this in the wrong subforum, meant to post this is PSoC 5, but the file is attached. Thanks for the timely reply.
|
|
|
|
你进入了while循环吗?
这有冲突的数据类型—— UINT8 SeDealSt[ 4096 ];UINT8接收电压[4096 ];int i;(i=0;i;lt;4096;i++){sEndAld=i;接收v=0;} 发送数组中的256个值的模式重复了16次,因为您声明了 作为UIT8。 问候,Dana。 以上来自于百度翻译 以下为原文 Do you get inside the while loop ? This has conflicting data types - uint8 sendArray[4096]; uint8 receiveArray[4096]; int i; for(i=0;i<4096;i++){ sendArray=i; receiveArray=0; } The pattern of 256 values in send array repeats 16 times because you declared it as uint8. Regards, Dana. |
|
|
|
您可能还希望增加堆大小。
堆和堆栈大小减少了3.1,尝试恢复到3个级别4K和16K。 3.1个默认设置现在是128字节和2K。 问候,Dana。 以上来自于百度翻译 以下为原文 You might also want to increase your heap size - The heap and stack size were reduced in 3.1, try restoring to 3.0 levels 4K and 16K respectively. 3.1 default settings are now 128 bytes and 2K. Regards, Dana. |
|
|
|
谢谢你,Dana。我今天有点晚了,昨天晚上我们吃了一顿很棒的意大利晚餐……
我首先想到的是:中断应该被启用(通常)。 存在一个错误:插入一个包含SytFo.lt; 如果(UARTHARETCTXSTATUSSUE)= = UARTHOTXXSTSTYFIFOXNOTHOLL FULL){ 将失败:在开始,初始化后UARTHARTXYSTSTYFIFOSULL将被设置,因此结果将永远不等于您质疑的UARTHARTXYSTSYFIFOXNOTHOLL FULL。 最好使用(UARTHARETCTXSTATUSSUE)和UARTHOXTXYSTSSFIFOWONNOTHOLL),当设置位时,这是正确的。 同样适用于AyRead xStUsUs()。 最后,在嵌入式世界中,你总是有一个无限循环重复,直到PoCR关闭。当你的主体()在到达终点时返回时,你知道会发生什么吗? 最好在末尾放置一个无限循环来等待或将整个发送和恢复部分放入无限的while循环中。 快乐编码 鲍勃 以上来自于百度翻译 以下为原文 Thank you, Dana. I'm a bit late today, we had a great italian dinner yesterday evening... What first jumps to my mind: Interrupts should be enabled (usually). There is an error: insert a #include to have sprintf() resolved. if(UART_ReadTxStatus()==UART_TX_STS_FIFO_NOT_FULL ){ will fail: In the beginning, after initialization UART_TX_STS_FIFO_EMPTY will be set, too so the result will never be equal to your questioned UART_TX_STS_FIFO_NOT_FULL. Better use if(UART_ReadTxStatus() & UART_TX_STS_FIFO_NOT_FULL ) which will be true, when the bit is set. Same applies to _ReadRxStatus(). Lastly: in the embedded world you always hafe an infinite loop that repeats until powerr switched off. When your main() returns when reaching the end, do you know what will happen? Better put an infinite loop at the end to wait or put the whole sending & revieving part into an infinite while-loop. Happy coding Bob |
|
|
|
我将就此发布一个案例。没有在TRM的地方,AP注意到启动,
数据路径等。FIFO被清除了吗? 问候,Dana。 以上来自于百度翻译 以下为原文 I will post a case on this. No where in TRM, ap note on startup, Datapath, etc.. does FIFO getting cleared stated. Regards, Dana. |
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2106 浏览 1 评论
1853 浏览 1 评论
3672 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1788 浏览 6 评论
1536 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
573浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
426浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
439浏览 2评论
389浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
920浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 04:43 , Processed in 1.437121 second(s), Total 88, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号