mv最后:串口1,PA9TXD,PA10RXD,发送单个字节,发送一串字节,发送字符串,发送整型int类型数据,float,校验和

# Untitled - By: dell - Sun Aug 4 2024
#using uart1 PA9 PA10

#https://blog.csdn.net/u011144417/article/details/93738101
import sensor, image, time
from pyb import UART
import struct

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)
#PA9-TXD;PA10-RXD

uart = UART(1, 9600, timeout_char=200)
clock = time.clock()


# 计算两个单精度浮点数的和
def add_float(a, b):
    binary_a = struct.pack('f', a)
    binary_b = struct.pack('f', b)
    print(binary_a)
    print(binary_b)
    sum_binary = struct.pack('f', struct.unpack('f', binary_a)[0] + struct.unpack('f', binary_b)[0])
    return struct.unpack('f', sum_binary)[0]


def send_data_packet(x, y):
        csum=(x+y)%256
        csum &= 0xFF # 强制截断
        
#        print("csum=")
#        print(csum)
#        print("x=")
#        print(x)
#        print("y=")
#        print(y)
#        print(0x0d)
#        print(0x0a)
#        print("---\r\n")
        temp = struct.pack("<bbiiBbb",                #格式为俩个字符俩个整型
                       0xAA,                       #帧头1
                       0xAE,                       #帧头2
                       int(x), # up sample by 4    #数据1
                       int(y), # up sample by 4    #数据2
                       csum,
                       0x0D,                       #帧尾1
                       0x0A)                       #帧尾2
        uart.write(temp)                           #串口发送
        print(temp)


#uart.deinit() #关闭串口
while(True):
    clock.tick()
    img = sensor.snapshot()
#    uart.write('a')
#    uart.write('b')
#    uart.write('A')
#    uart.write(bytes([0x0d,0x0a]))
#    #uart.write(bytes(0x0a))
#    uart.write("Hello World!\r\n")
#    uart.write('C')
#    uart.write('D')
#    uart.write(bytes([0x0d]))
#    uart.write(bytes([0x0a]))

#    data = bytearray([0xAA,0x55,0x07,0x12,0x74,0x0e,0x04,0x00,0x0d,0x0a])#转成16进制
#    uart.write(data)


#    uart.write("integer 2bytes,intnum=8\r\n")
    intnum=8
    print("integer 2bytes,intnum=8\r\n")

    b = intnum.to_bytes(2,'big')
    b1 = intnum.to_bytes(2,'little')
    print(b)
    print(b1)

    uart.write(b)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

    uart.write(b1)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))
#    uart.write("integer 2bytes,intnum=57\r\n")
    print("integer 2bytes,intnum=57\r\n")

    intnum=57
    b = intnum.to_bytes(2,'big')
    b1 = intnum.to_bytes(2,'little')
    print(b)
    print(b1)

    uart.write(b)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

    uart.write(b1)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))



#    uart.write("integer 2bytes,intnum=123\r\n")
    intnum=123
    print("integer 2bytes,intnum=123\r\n")

    b = intnum.to_bytes(2,'big')
    b1 = intnum.to_bytes(2,'little')
    print(b)
    print(b1)

    uart.write(b)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

    uart.write(b1)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

#    uart.write("integer 2bytes,intnum=1452\r\n")
    intnum=1452
    print("integer 2bytes,intnum=1452\r\n")

    b = intnum.to_bytes(2,'big')
    b1 = intnum.to_bytes(2,'little')
    print(b)
    print(b1)

    uart.write(b)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

    uart.write(b1)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

#    uart.write("integer 2bytes,intnum=32457\r\n")
    intnum=32457
    print("integer 2bytes,intnum=32457\r\n")

    b = intnum.to_bytes(2,'big')
    b1 = intnum.to_bytes(2,'little')
    print(b)
    print(b1)

    uart.write(b)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

    uart.write(b1)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))


#    uart.write("integer 2bytes,intnum=-32457\r\n")
    intnum=-32457
    b = intnum.to_bytes(2,'big')
    b1 = intnum.to_bytes(2,'little')
    print(b)
    print(b1)

    uart.write(b)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

    uart.write(b1)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))



#    uart.write("integer 2bytes,intnum=-4757\r\n")
    intnum=-4757
    b = intnum.to_bytes(2,'big')
    b1 = intnum.to_bytes(2,'little')
    print(b)
    print(b1)

    uart.write(b)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

    uart.write(b1)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))


#    uart.write("integer 2bytes,intnum=-241\r\n")
    intnum=-241
    b = intnum.to_bytes(2,'big')
    b1 = intnum.to_bytes(2,'little')
    print(b)
    print(b1)

    uart.write(b)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

    uart.write(b1)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))


#    uart.write("integer 2bytes,intnum=-78\r\n")
    intnum=-78
    b = intnum.to_bytes(2,'big')
    b1 = intnum.to_bytes(2,'little')
    print(b)
    print(b1)

    uart.write(b)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

    uart.write(b1)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))


#    uart.write("integer 2bytes,intnum=-5\r\n")
    intnum=-5
    b = intnum.to_bytes(2,'big')
    b1 = intnum.to_bytes(2,'little')
    print(b)
    print(b1)

    uart.write(b)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

    uart.write(b1)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))


#    uart.write("integer 2bytes,intnum=0\r\n")
    intnum=0
    b = intnum.to_bytes(2,'big')
    b1 = intnum.to_bytes(2,'little')
    print(b)
    print(b1)

    uart.write(b)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

    uart.write(b1)

    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))


#把二进制转为int类型
   # b = b'\xff\x01'
    b=bytes([0x05,0xac])
    print("here\r\n")
    x = int.from_bytes(b,'big') #高位在前
    x2 = int.from_bytes(b,'little')  #低为在前
    print(x)
    print(x2)



#把浮点数转为字节,发送出去
    fnum=3.1415
    bytenum=struct.pack('f',fnum)
    uart.write(bytenum+'\r'+'\n')

    a=3.1415
    b=3.1415
    #大端,小端格式
    binary_a = struct.pack('<f', a)
    binary_b = struct.pack('>f', b)
    print(binary_a)
    print(binary_b)
    uart.write(binary_a)
    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))

    uart.write(binary_b)
    uart.write(bytes([0x0d]))
    uart.write(bytes([0x0a]))


    send_data_packet(12, 320)
    send_data_packet(-12, 320)
    send_data_packet(120, 152)

    time.sleep_ms(3000)

    print(clock.fps())












#uart.any #串口读取到任何有效字符,该函数返回1,否则返回0
#uart.read() #读取所有有效字符(此时返回的是字节串,即数组)
#uart.read().decode()  #将读取的数据存入data(此时返回的是字符串)
#uart.read().decode().strip()  #将读取的数据存入data(返回去掉回车换行符的字符串)

##将读取的数据存入data(返回去掉回车换行符并以“,”分隔的字符串数组)
#uart.read().decode().strip().split(",")

##如果获取到的data是一串数字,还可以通过
#data = uart.read().decode().strip()  #将读取的数据存入data(返回去掉回车换行符的字符串)
#data = int(data) + 2 #将接收到的字符串类型的data转换为数字类型,并+2再传给data
#————————————————

#                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

#原文链接:https://blog.csdn.net/Stark_/article/details/114541031


#    uart.write(data) #串口发送data里面的内容
#    uart.write("data") #串口发送字符串“data”
#    uart.writechar(65) #串口发送ASCALL码为65(十进制,如果是十六进制则为41)的字符,即字母A

#    uart.deinit() #关闭串口
#uart.write(data_out +'\n')




#import struct

#def bytes_to_float(bytes, byteorder='big'):
#    return struct.unpack(f'{byteorder}f', bytes)[0]

## 示例字节
#bytes_data = b'\x3f\x80\x00\x00'

## 转换为浮点数(使用大端字节序)
#float_data_big_endian = bytes_to_float(bytes_data, 'big')

## 转换为浮点数(使用小端字节序)
#float_data_little_endian = bytes_to_float(bytes_data, 'little')

#print(float_data_big_endian)
#print(float_data_little_endian)

在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值