还剩1页未读,继续阅读
文本内容:
目录参考•接线■星瞳教程■传送数据■openmv解码程序■STM32参考接线星瞳教程发送数据接收数据不过我比较奇怪为何它们的不需要初始化uart传送数据openmv初始化以及参数设置L uart串口位数据uart=pyb.UART3,115200#3,^W2752^aiart.init115200bits=8,parity=None,stop=l#87,位,无校验位,位停止位
1、将数据和帧头一般来说是两个帧头打包,发送打包好的数据2关于函数的用法请见:…ustruct.pack fmt,vl,v2,根据格式字符串打包值返回值是对值进行编码的字节对fmt vl,v2象参数意义fmt#格式为俩个字def send_data_packetx,y:temp=struct.packbbiiz符俩个整型#帧头TITLE1,1TITLE2,#帧头#数据#数2intx,1inty据#串口发送2uart.writetemp可以根据自己的需求添加变量以及帧头一帧数据的每一个必须要以字节的显示发送而不能Byte data=bytearray[x,y],是用进制发送,他们两个函数在串口助手里面看16uart.write%x%x\r%x,y到的内容是一样的大小写的区别,但是后者是无法让单片机接收到的解码程序STM32/*局部静态变量接收缓存*/void Optical_Flow_Receive_Prepareu8data{/*数据长度*〃*数据数组下标*/static u8RxBuffer
[10];static u8_data_cnt=0;/*接收状态/*帧头V staticu8state=0;1*/instate==0data==TITLE1/*帧头{state=1;}2*/else ifstate==ldata==TITLE2/*接收数据租*/{state=2;_data_cnt=0;}else ifstate==2{RxBuffer[++_data_cnt]=data;if_data_cnt=8{state=0;}}/*若有错误重新等待接收帧头*/Data_ProcessingRxBuffer_data_cnt;/else state=0;}void Data_Processingu8*data_buf u8num{int theta_org,rho_org;z/*读取偏移角度原始数据*/theta_org=int*data_buf+l0|int*data_buf+28|int*data_buf+316|/*读取偏移尺寸原始数据*/int*data_buf+424;theta_err=theta_org;rho_org=int*data_buf+50|int*data_buf+68|int*data_buf+716|int*data_buf+824;rho_err=rho_org;}参考的一些链接
[1]【】2⑶
103747349.first rankecpm v3pc rankv2utm term=openmv%E4%B
8...。
个人认证
优秀文档
获得点赞 0