OpenMV4開發筆記3 串列埠通訊

2021-10-21 11:20:34 字數 2372 閱讀 8012

openmv4引出了串列埠3和串列埠1,首先以串列埠3的收發為例

import time

from pyb import uart

uart = uart(3,

115200

)#串列埠3,波特率115200

uart.init(

115200,8

,none,1

)#8個資料位,無奇偶校驗,1個停止位

while

(true):

if uart.

any():

# 判斷是否有資料

data = uart.read(

)#將讀取的資料存入data

uart.write(data)

#串列埠傳送data裡面的內容

如果同時使用串列埠1和串列埠3,以串列埠3接收,串列埠1傳送為例

import time

from pyb import uart

uart3 = uart(3,

115200

)#串列埠3初始化波特率115200

uart3.init(

115200,8

,none,1

)#8個資料位,無奇偶校驗,1個停止位

uart1 = uart(1,

115200

)#串列埠1初始化波特率115200

uart1.init(

115200,8

,none,1

)#8個資料位,無奇偶校驗,1個停止位

while

(true):

if uart3.

any():

# 判斷串列埠3是否有資料

data = uart3.read(

)#將串列埠3讀取的資料存入data

uart1.write(data)

#串列埠1傳送data裡面的內容

根據python的縮排規則,如果if語句判斷是true,就把縮排的語句執行了,否則,什麼也不做。

也可以給if新增乙個else語句,意思是,如果if判斷是false,不要執行if的內容,去把else執行了:

注意不要少寫了冒號:

也可以用elif做更細緻的判斷:

uart = uart(3,

115200

)#給定串列埠3波特率,之後uart指代的就是串列埠3

uart.init(

115200,8

,none,1

)#對串列埠3給定引數初始化

uart.init(baudrate=

115200

, bits=

8, parity=

none

, stop=1)

#給定引數初始化的另一種寫法

#baudrate 是時鐘速率,即波特率

#bits 是每個字元的位數,即資料位,7,8或9。

#parity 是奇偶校驗,none,0(偶數) 或 1(奇數)。

#stop 是停止位的數目,1或2。

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

uart.write(data)

#串列埠傳送data裡面的內容

uart.write(

"data"

)#串列埠傳送字串「data」

uart.writechar(65)

#串列埠傳送ascall碼為65(十進位制,如果是十六進製制則為41)的字元,即字母a

uart.deinit(

)#關閉串列埠

IPLE 開發筆記 4

10 月 16 日 經過總結得出了一點api設計經驗,即傳識別符號,不穿指標。最初的設計 void demoapi pbyte pfiledata,int width,int height 改良後的設計 void demoapi handle hfile 這樣的好處是,我們只需要在函式外部管理乙個檔...

ios開發筆記 4

title ios開發筆記 4 date 2016 02 21 01 11 55 categories ios tags ios,筆記 一般此問題 都是由inte ce build與 中iboutlet的連線所引起的。可能是在 中對iboutlet的名稱進行了修改,導致inte ce build中的...

iOS開發筆記(4) 反射

反射的強大之處在於,我們可以將物件與依賴物件之間完全解耦,建立物件可以不引用標頭檔案,操作屬性 方法可以不依賴於物件,操作物件可以不依賴於型別,操作型別可以不依賴於引用等等等等。最直觀的效果是,即使不引用標頭檔案亦可操作型別 物件及對應屬性與方法。借助強大的runtime特性,在ios平台上我們也得...