知識
不管是網(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、效果展示
相關案例查看更多
相關閱讀
- 報廢車回收管理軟件
- 網(wǎng)絡公司
- 云南網(wǎng)站優(yōu)化公司
- 云南小程序商城
- 小程序表單
- 海報插件
- 云南做百度小程序的公司
- 小程序開發(fā)排名前十名
- 小程序商城
- 汽車報廢管理系統(tǒng)
- 云南網(wǎng)站建設方法
- 云南網(wǎng)站建設報價
- 小程序被騙退款成功
- 云南網(wǎng)絡公司
- 云南小程序開發(fā)公司推薦
- 昆明網(wǎng)站制作
- 買小程序被騙
- 前端開發(fā)
- 云南小程序哪家好
- 云南小程序開發(fā)課程
- 百度排名
- 二叉樹
- 汽車回收管理系統(tǒng)
- 保險網(wǎng)站建設公司
- 網(wǎng)站建設服務公司
- 開發(fā)框架
- 智慧農(nóng)貿(mào)市場
- 開發(fā)制作小程序
- 網(wǎng)站建設專家
- 云南etc微信小程序