MAIX BIT K210与单片机通过串口通信

博客介绍了在MaixPY环境下,针对K210芯片如何通过串口进行十六位数据通信。通过定义`sending_data`函数,将数据打包成指定格式的字节并利用UART进行发送。同时展示了单片机端的数据解析代码,接收并处理这些字节数据。此博客内容涉及嵌入式硬件通信和数据处理。

问题:在使用K210时使用官方介绍的串口通信,发送的数据为八位的数据,但是在使用中需要十六位的,因为所需数据可能涉及到百位。

解决方法:将数据打包后发送。

一下为打包函数:

def sending_data(cx,cy,ch):
    global uart;
    #frame=[0x2C,18,cx%0xff,int(cx/0xff),cy%0xff,int(cy/0xff),0x5B];
    #data = bytearray(frame)
    data = ustruct.pack("<bbhhhb",              #格式为俩个字符俩个短整型(2字节)
                   0x2C,                       #帧头1
                   0x12,                       #帧头2
                   int(cx), # up sample by 4    #数据1
                   int(cy), # up sample by 4    #数据2
                   int(ch),
                   0x5B)
    uart = UART(UART.UART1, 115200, 8, 1, 0, timeout=1000, read_buf_len=4096)
    uart.write(data);   #必须要传入一个字节数组

MAIX BIT K210端完整代码

# object detector boot.py
# generated by maixhub.com

import sensor, image, lcd, time
import KPU as kpu
import gc, sys

import ustruct

#LED
from fpioa_manager import fm
from Maix import GPIO
io_led_red = 13
io_led_bule = 14
io_led_green = 12
fm.register(io_led_red, fm.fpioa.GPIO0)
fm.register(io_led_bule, fm.fpioa.GPIO1)
fm.register(io_led_green, fm.fpioa.GPIO2)
led_r=GPIO(GPIO.GPIO0, GPIO.OUT)
led_b=GPIO(GPIO.GPIO1, GPIO.OUT)
led_g=GPIO(GPIO.GPIO2, GPIO.OUT)

#串口
from fpioa_manager import fm
from machine import UART
# need your connect hardware IO 10/11 to loopback
fm.register(10, fm.fpioa.UART1_TX, force=True)
fm.register(9, fm.fpioa.UART1_RX, force=True)

def sending_data(cx,cy,ch):
    global uart;
    #frame=[0x2C,18,cx%0xff,int(cx/0xff),cy%0xff,int(cy/0xff),0x5B];
    #data = bytearray(frame)
    data = ustruct.pack("<bbhhhb",              #格式为俩个字符俩个短整型(2字节)
                   0x2C,                       #帧头1
                   0x12,                       #帧头2
                   int
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Orange--Lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值