完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-7 10:26 编辑 我这个是labview上位机和单片机USB转串口实现通信,图片左边的部分,单片机的KEIL编程的程序中也有add0 add1 add2 是这么定义(uchar code Add[]={125,123,121};)的,就定义了一句 在别的地方没发现再写到add0 add1 add2 了,不过有用到这个数组在下面程序
,单片机程序也没有写到85,起始频率和步进频率,激励电压都有在程序中写到,这个左边的部分应该是加和的子VI,检查校验和的,然后加和上面那个应该是插入数组,只是不明白为什么这么做,还有85换别的数行不行,起始频率和步进频率都为什么要除256,就是2的8次方,求商和余数再插入到数组中
不知道有人懂吗 if( RI==1 ) { Temp = SBUF; for( i=0 ; i { UART_Rx_Buffer = UART_Rx_Buffer[i+1]; } UART_Rx_Buffer[Max_Rx-1] = Temp; //ÒÆλÍê³É if( Check_Key( UART_Rx_Buffer , Add ) ) //¼ì²âµØÖ· ½âÎöÊý¾Ý { Rx_OK =1; UART_IT(1); //¹Ø±ÕUARTÖÐ¶Ï } RI = 0; } if( ti==1 ) { TI = 0; } } bit Check_Key( uchar *s , uchar *Key ) //¼ì²é¹Ø¼ü×Ö { if( (s[0]==Key[0])&&(s[1]==Key[1])&&(s[2]==Key[2])) { return 1; } else { return 0; } return 0; } uchar Check_And0( uchar *s , uchar Length ) //¼ì²éУÑéºÍ { uchar i; uchar k=0; for( i=0 ; i { k = k + s; } return k; } uchar Add_And0( uchar *s , uchar Length ) //Ìí¼ÓУÑéºÍ { uchar i; uchar k=0; for( i=0; i { k += s; } k = ~k + (uchar)(1); s[Length] = k; return (k); } |
|
相关推荐
2个回答
|
|
举例:
256在二进制里面是0000000100000000,16位整数用16进制表示16#0100. 你的case中,除以256后,结果是1: 二进制 0000000000000001, 16进制 16#0001 对比可知,除以256其实是把源整数做一个bit位的移位,高8位移位至第八位。 这个取决于对象设备的通讯协议中数据的表示方法,你的例子中最终的商和余数就是分离16进制整数的高八位和低8位,做个调换后传输到对象设备中。 Labview中有现成的高低字节转换功能块。 |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
Labview 信号处理 瞬态测量 连线出现错误提示,请教各位前辈!麻烦请各位帮忙看一下?
4594 浏览 2 评论
803 浏览 1 评论
1524 浏览 6 评论
LabVIEW如何识别接线端是否有数据输入,不能通过判断默认值的方式
2181 浏览 5 评论
打开labview时很慢,在任务管理器里面看到,内存能有1000多M,重装也没用,各位大佬这是什么问题引起的,怎么解决
4827 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-20 04:50 , Processed in 0.862293 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号