发送数据 接收数据 不过我比较奇怪为何它们的uart不需要初始化
1、初始化以及uart参数设置
uart = pyb.UART(3, 115200) #串口3,波特率115200 uart.init(115200, bits=8, parity=None, stop=1) #8位数据位,无校验位,1位停止位2、将数据和帧头(一般来说是两个帧头)打包,发送打包好的数据 关于函数的用法请见:https://docs.openmv.io/library/ustruct.html?highlight=ustruct
ustruct.pack(fmt,v1,v2,… ) 根据格式字符串fmt打包值v1,v2 … 。返回值是对值进行编码的字节对象。
fmt 参数意义
def send_data_packet(x, y): temp = struct.pack("<bbii", #格式为俩个字符俩个整型 TITLE1, #帧头1 TITLE2, #帧头2 int(x), #数据1 int(y)) #数据2 uart.write(temp) #串口发送可以根据自己的需求添加变量以及帧头。 一帧数据的每一个Byte必须要以字节的显示发送(data = bytearray([x,y])),而不能是用16进制发送(uart.write("%x %x \r"%(x,y))),他们两个函数在串口助手里面看到的内容是一样的(大小写的区别),但是后者是无法让单片机接收到的。
参考的一些链接: 【1】https://blog.csdn.net/weixin_40484766/article/details/89319253 【2】https://blog.csdn.net/zzzzjh/article/details/80725348 【3】https://blog.csdn.net/weixin_45030703/article/details/103747349?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159918166619725250326440%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=159918166619725250326440&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v3~pc_rank_v2-23-103747349.first_rank_ecpm_v3_pc_rank_v2&utm_term=openmv%E4%B8%B2%E5%8F%A3%E9%80%9A%E4%BF%A1&spm=1018.2118.3001.4187 https://blog.csdn.net/liluan_sama/article/details/96283653?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param