欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

Maix Bit(K210) 與上位機串口通信 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 技術分享 >

Maix Bit(K210) 與上位機串口通信

發(fā)表時間:2020-10-19

發(fā)布人:葵宇科技

瀏覽次數(shù):286

串口通信

  • 1、K210 UART
    • 1.1 、串口通信函數(shù)
    • 1.2 、常用函數(shù)
  • 3、代碼
  • 4、效果展示

準備工具 K210開發(fā)板
USB轉TTL串口 (俗稱ISP燒錄器)
串口助手

??其實Maix Bit 是自帶CH552 芯片的,燒錄程序使用,如果把代碼燒錄在flash或者保存在SD卡里面,不使用MaixPy IDE連接開發(fā)板,那么這個TX 、RX端口就會空出來(下面圖示原理圖標注了自帶TX、TX),可以不使用USB轉TTL就可以實現(xiàn)串口通信,如果既要連接用MaixPy IDE,又想要在串口助手收到數(shù)據(jù),那么就需要一個USB轉TTL。
附圖USB轉TTL(類似這種就可以):
在這里插入圖片描述

??實現(xiàn)Maix Bit 與上位機串口通信,在串口助手發(fā)送消息,Maix Bit 開發(fā)板在接收到消息之后轉發(fā)到上位機,實現(xiàn)串口通信。
在這里插入圖片描述

1、K210 UART

??通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,UART 模塊主要用于驅動開發(fā)板上的異步串口。k210 一共有3個 UART,每個 UART可以進行自由的引腳映射。

1.1 、串口通信函數(shù)

??K210可以自己隨意的配置I/O口,類似FPGA,不像其它類型的單片機串口是固定好的。在使用 uart 前,我們需要使用 fm 來對芯片引腳進行映射和管理。我使用引腳9和引腳10分別做為UART1_TX和UART1_RX。如果想不使用USB轉TTL,那么把引腳修改為原理圖所示引腳即可4、5(這個一定要和開發(fā)板對應,不能錯),然后把代碼燒錄到flash或者保存到SD卡,也可以實現(xiàn)與上位機串口通信。

fm.register(9, fm.fpioa.UART1_TX, force=True)
fm.register(10, fm.fpioa.UART1_RX, force=True)

構造函數(shù),其實就是配置端口:

uart = machine.UART(uart,baudrate,bits,parity,stop,timeout, read_buf_len)

參數(shù):
uart UART 號,使用指定的 UART,可以通過 machine.UART. 按tab鍵來補全
baudrate: UART 波特率
bits: UART 數(shù)據(jù)寬度,支持 5/6/7/8 (默認的 REPL 使用的串口(UARTHS)只支持 8 位模式), 默認 8
parity: 奇偶校驗位,支持 None, machine.UART.PARITY_ODD, machine.UART.PARITY_EVEN (默認的 REPL 使用的串口(UARTHS)只支持 None), 默認 None
stop: 停止位, 支持 1, 1.5, 2, 默認 1
timeout: 串口接收超時時間
read_buf_len: 串口接收緩沖,串口通過中斷來接收數(shù)據(jù),如果緩沖滿了,將自動停止數(shù)據(jù)接收

如下是我自己構造的函數(shù):


uart_A = UART(UART.UART1, 115200, 8, 1, 0, timeout=1000, read_buf_len=4096)

1.2 、常用函數(shù)

用于讀取串口緩沖中的數(shù)據(jù)

uart.read(num)

用于使用串口發(fā)送數(shù)據(jù):

uart.write(buf)

在python3中. 默認的編碼是unicode,我們的字符串就是unicode。unicode弊端:在存儲和傳輸?shù)臅r候是很浪費的
在存儲和傳輸?shù)臅r候不能直接使用unicode。 必須要對字符串進行編碼. 編碼成bytes類型(字節(jié)形式的字符串),在K210中默認是bytes類型的。解碼和編碼在物聯(lián)網(wǎng)通信處理服務器數(shù)據(jù)是很重要的。
解碼:
read_data是保存的已經(jīng)收到的數(shù)據(jù)

read_data.decode('utf-8')

編碼:

read_data.encode("utf-8")

更多串口通信函數(shù)的使用:https://maixpy.sipeed.com/zh/api_reference/machine/uart.html

3、代碼

from fpioa_manager import fm

# need your connect hardware IO 9/10 to loopback
fm.register(9, fm.fpioa.UART1_TX, force=True)
fm.register(10, fm.fpioa.UART1_RX, force=True)

from machine import UART

uart_A = UART(UART.UART1, 115200, 8, 1, 0, timeout=1000, read_buf_len=4096)

import time

time.sleep_ms(100) # wait uart ready
uart_A.write(b'hello world')

while True:
  if uart_A.any():
    while uart_A.any():
      read_data = uart_A.read()
      print("recv = ", read_data) # 輸出收到的數(shù)據(jù)
      uart_A.write(read_data+"\r")
    #break
  time.sleep_ms(10) # ohter event

uart_A.deinit()
del uart_A

4、效果展示

在這里插入圖片描述

相關案例查看更多