一、K210发送
k210模块串口引脚分配如图 1
k210端代码如下
from machine import UART
from fpioa_manager import fm
import time
fm.register(8, fm.fpioa.UART1_TX, force=True)
fm.register(6, fm.fpioa.UART1_RX, force=True)
uart_A = UART(UART.UART1, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096)
open_str = '1'
close_str = '2'
read_data = uart_A.read()
while(1):
uart_A.write(open_str)
uart_A.write(close_str)
如图2所示,示波器成功收到k210的TX信号
二、stm32接收
如图3,stm32f103vct6的串口1对应PA9,PA10管脚
如图4,stm32f103vct6的I2C1_SCL对应PB6,I2C1_SDA对应PB7。接下来要给STM32配置好4引脚的0.96''OLED显示屏来显示串口收到的数据,用的是野火指南者的资料,接线接好后例程直接就可以顺利跑起来了,效果如图5,另外还发现一个好酷的小彩蛋hhh如图6
三、maixhub生成代码串口发送
以下代码仅为串口发送相关代码,完整代码在文末
def init_uart():
fm.register(8, fm.fpioa.UART1_TX, force=True)
fm.register(6, fm.fpioa.UART1_RX, force=True)
uart = UART(UART.UART1, 115200, 8, 0, 1, timeout=1000, read_buf_len=256)
return uart
class Comm:
def __init__(self, uart):
self.uart = uart
def send_classify_result(self, pmax, idx, label):
msg = "{}:{:.2f}:{}\n".format(idx, pmax, label)
self.uart.write(msg.encode())
print(msg.encode())
def main(labels = None, model_addr="/sd/m.kmodel", sensor_window=input_size\
, lcd_rotation=0, sensor_hmirror=False, sensor_vflip=False):
try:
comm.send_classify_result(pmax, max_index, labels[max_index].strip())
print(msg.encode())
上面这句打印出的编码如图7(默认为UTF-8编码 )
附上encode()方法的说明:
Python encode()方法 | 菜鸟教程 (runoob.com)
图8中展示了uart方法的配置参数,本文中使用的是115200波特率,8位数据,0校验位,1停止位,如下:
uart = UART(UART.UART1, 115200, 8, 0, 1, timeout=1000, read_buf_len=256)