完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
13个回答
|
|
在连接上运行什么数据被定义为“协议”,因此在这个配置中,由您来定义它。一个好主意是只发送ASCII字符并在消息的末尾有定界符。然后,您可以在接收器侧逐字节读取并将其存储,直到定界符出现为止。发送具有固定长度的消息或发送包含总长度的消息也是常见的解决方案。尽管如此,你还得从UART看。
鲍勃 |
|
|
|
|
|
|
|
嗨,伙计们,不想让线程跳动,但是我要发布一个关于UART RX函数的查询。
我一直在用我的PSoC 3的UARTHARRX示例代码,它将来自串行端口的输入数据存储在变量char CalpBuff[[ 20 ] ]中;如果您在超级终端上键入键盘,键按下会出现在PSoC上的LCD屏幕上。字符在屏幕上移动,直到计数达到16,然后清除LCD以允许进一步进入。 我想知道CharBuffer的键盘上的所有字符,我想从我手机上的BLUTROM发送一些预定义的信息,说打开或关闭一个LED。我可以看看CharBuffer数组的各个索引,比如查查数组(1)等的值,如果它有一个特定值,比如打开或关闭一个LED,就像我提到的那样。 谢谢 |
|
|
|
只要CharBuffer存在并且在范围内,你就可以访问它的每一个元素。
但是,对于您的情况,最好接受单个字符作为命令并立即对它们进行操作。 等待角色准备就绪 从UART读取字符 在切换语句中对字符进行操作。 鲍勃 |
|
|
|
如果我想把一个浮点数12.5从UART发送到PSoC,那么我需要4字节来存储它,因为浮标是32位的吗?
我对阅读一个个性的概念很熟悉,我一直在思考两个不同点的浮点被传送到PSoC,并有一种区分它们的方法。所以说,如果我用上面的例子做了一个Windows窗体应用程序,在发送另一个值之前,我可以先写一个字符,然后再发送一个浮点数和另一个字符。我正在考虑是否接收到查尔是“A”,如果是这样,下一个浮点数或4个字节是浮点数,或者你认为我过于复杂了吗? |
|
|
|
因为浮点的内部表示在PSoC和您的连接设备之间可能是不同的,所以最好为数字发送可打印的ASCII码。当然,这将需要转换为PSOC侧的浮点表示为ATOI()或SCASNF()。作为副作用,你可以在数字中使用一个终端程序和密钥。
鲍勃 |
|
|
|
嗨,鲍伯,谢谢你的回复。
我从我的表单应用程序获得了有意义的数据,我只是运行了UARTX示例代码,并从表单应用程序发送了一些数据,并在LCD上正确显示。 我试图修改代码以便屏幕清除,数据只是最近发送的。RX示例代码中的数据似乎被存储为一个称为“CHAR8CH”的字符字符串,样本代码将在屏幕上计数全部16行,然后发送清除屏幕命令。因此,如果我发送数字10,LCD将增加位置并保持显示1010101010,直到达到计数16。 我想修改示例代码来清除新数据上的屏幕,只显示UART接收到的新值。到目前为止,我一直没有成功。因此,如果我在LCD位置上有10个0,并且将值更新为11,则10将被覆盖。 每当我发送一个新的值时,另一个查询是变量“CH”被刷新并用更新的数据重写,还是在CHAR8的索引中移动数据?谢谢您的大力协助!! 编辑:IVE代码到目前为止,我已经从不需要的行1中删除了计数显示。 CH=UARTHAR1L GETCHARE(); /*如果字节接收*/IF(CH & Gt;0U){CUT+++;/*如果计数值达到计数16从第一位置开始*/IF(计数%LCD*NUMJORITS==0U){POS=0U;/*重置,计数值*//*显示将在达到计数值16 */LCDA CHARY1 1WORTECONTROL(LCDA CHARY1)时被清除。清除显示);} LCDSKARY1LYPLE(0U,POS +);LCDA CHARY1LPUCHCHAR(CH);/*打印所接收的字符*/ 有趣函数Atoi() 这是否是该函数的正确用法,例如,我的CHAR8CH包含“128”。 CIN8CH; SpIFTF(CH,%i),CurrdNeNm;LCDX位置(1,0);LCDA PrimtScript(CH); 我也会更好地使用浮点,因为有时值包含小数点?所以它是浮点转换,在Stavtf语句中是%F。 |
|
|
|
Schutff()期望字符的数组足够大以保存结果,而不是单个字符。所以你应该使用
字符缓冲器〔17〕;// LCD的行长度+空字节的空间 SpRAPTF(缓冲区,“值=%D”,转换层); LCDApReltScript(缓冲区); 当使用浮动时,可能存在一些链接器问题,但我不得不承认,我没有使用PSoC3更长的时间。试一试… 鲍勃 |
|
|
|
好的,我把这个集成到当前的UART代码中,它给出了下面的代码,但是程序应该发送一个255的值给它,它用前面发布的代码样本,但是用SaMPTF来显示,因为某些原因,在LCD上的值等于12464。
包括:L.& Gt; 从串行端口接收到的CHAR8CH;/*数据*/ char缓冲器〔17〕;CyGalAcActuabess;/*启用处理器的所有中断。*/ LCDA CHARY1LSTATE();UARTHAR11START(); 当(1){/*检查UART状态*/CH=UARTHAR1LGETCHARE(); /*如果字节接收*/IF(CH & Gt;0){SAMTIFF(缓冲器),“值=%D”,CH);LCDA CHARY1L位置(0, 1);LCDA CHARY1LPrimTrScript(缓冲器); } } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
好啊,
所以我宣布CHAR8CH为无符号字符CH; 已完成SCAFTF语句中的类型转换。而不是以前的CH,它的(无符号int)给出 Simulf(缓冲区)“value=%D”,(无符号INT)CH; |
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2071 浏览 1 评论
1827 浏览 1 评论
3642 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1762 浏览 6 评论
1513 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
511浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
362浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
410浏览 2评论
357浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
860浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 14:36 , Processed in 1.859313 second(s), Total 103, Slave 86 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号