chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何將Python與串行端口配合使用

454398 ? 來源:工程師吳畏 ? 2019-07-31 08:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

原理圖

如何將Python與串行端口配合使用

的 電路 的

獲取PySerial

Python的許多優(yōu)秀功能之一是在使用PIP工具時安裝庫是多么容易。在您的計算機(jī)上,打開終端或命令提示符并鍵入“PIP”。如果您收到無法識別的錯誤,那么您的PIP無法正確安裝。安裝Python時,請確保選中“添加到環(huán)境變量”選項。 PIP工作后,運(yùn)行下面顯示的命令安裝PySerial:

pip install PySerial

我們的項目中包含PySerial,是時候打開Python IDLE并創(chuàng)建我們的串口項目了!

PySerial

使用PySerial時,需要配置一些參數(shù)(在與在微控制器上設(shè)置UART外設(shè)類似的方式),包括。..。..

波特率 - COM端口的運(yùn)行速度。 Arduino項目傾向于在115200運(yùn)行

端口 - 正在使用的端口名稱(在設(shè)備管理器中查找)

奇偶校驗位 - 這些用于錯誤糾正但通常不使用

停止位 - 除非存在時序問題,否則只使用一個停止位

超時 - 用于防止串行掛起的端口

除了定義上面顯示的參數(shù)外,還需要導(dǎo)入串口模塊。下面的代碼摘錄顯示了如何導(dǎo)入串行模塊并配置UART端口以使用115200波特的COM3,沒有奇偶校驗,一個停止位和兩秒的超時。

import serial

serialPort = serial.Serial(port = “COM4”, baudrate=115200,

bytesize=8, timeout=2, stopbits=serial.STOPBITS_ONE)

這很容易使用設(shè)備管理器時,找到USB到串行設(shè)備所在的COM端口。打開開始菜單,然后鍵入“設(shè)備管理器”。加載設(shè)備管理器時,查找名為“ports”的部分并展開它。默認(rèn)情況下,大多數(shù)Windows計算機(jī)都有一個用于內(nèi)部通信的COM1端口,因此請勿使用該COM端口。假設(shè)您只連接了一個COM設(shè)備,則第二個COM端口將是您的微控制器。

使用串口非常簡單,只需要一些功能,包括。..。..

open() - 這將打開串口

close() - 這將關(guān)閉串口

readline () - 這將從串口讀取一個字符串

read(size) - 這將從串口讀取n個字節(jié)

write(data) - 這將把傳遞給函數(shù)的數(shù)據(jù)寫入串口

in_waiting - 這個變量保存緩沖區(qū)中的字節(jié)數(shù)

在我們的簡單程序中,我們首先打開串口先前已定義。必須調(diào)用open()函數(shù),因為它允許我們的程序“聲明”端口并阻止任何其他進(jìn)程訪問它。如果尚未打開端口,也無法訪問該端口。

下一段代碼是一個無限循環(huán),它做了一些事情。..。..

檢查緩沖區(qū)中是否有任何數(shù)據(jù)等待

/li》

當(dāng)數(shù)據(jù)到達(dá)時,將數(shù)據(jù)傳輸?shù)阶兞俊皊erialString”

打印“serialString”的值

寫一個字符串回到發(fā)送數(shù)據(jù)的設(shè)備,通知它我們收到了字符串

serialString = “” # Used to hold data coming over UART

while(1):

# Wait until there is data waiting in the serial buffer

if(serialPort.in_waiting 》 0):

# Read data out of the buffer until a carraige return / new line is found

serialString = serialPort.readline()

# Print the contents of the serial data

print(serialString.decode(‘Ascii’))

# Tell the device connected over the serial port that we recevied the data!

# The b at the beginning is used to indicate bytes!

serialPort.write(b“Thank you for sending data ”)

我們的微控制器電路/代碼

為了測試我們的Python串口程序,我們將使用一個非常小的PIC芯片,PIC16F1825 ,將使用XC8編碼。該芯片具有UART端口,這意味著我們可以將其直接連接到USB轉(zhuǎn)串口轉(zhuǎn)換器(例如FTDI 232R)。幸運(yùn)的是,這里使用的FTDI模塊從USB端口提供電源,因此我們不需要任何電源電路(更容易構(gòu)建)。

PIC的代碼由三個主要區(qū)域組成:

配置位 - 這些配置核心寄存器,如PLL和振蕩器

主要代碼 - 主要執(zhí)行代碼(在main()中找到)

功能 - 包括將字符串寫入UART并配置UART

配置位不會被深入介紹,但它們確保PIC不使用PLL,而是使用內(nèi)部振蕩器模塊作為其時鐘源。

// CONFIG1

#pragma config FOSC = INTOSC pin)

#pragma config WDTE = OFF

#pragma config PWRTE = OFF

#pragma config MCLRE = ON

#pragma config CP = OFF

#pragma config CPD = OFF

#pragma config BOREN = OFF

#pragma config CLKOUTEN = OFF

#pragma config IESO =

#pragma config FCMEN = ON

// CONFIG2

#pragma config WRT = OFF

#pragma config PLLEN = OFF

#pragma config STVREN = ON

#pragma config BORV = LO

#pragma config LVP = ON

主要功能PIC可以做三件事:將器件配置為使用8MHz的時鐘頻率(對于UART模塊),配置UART外設(shè);然后通過UART端口發(fā)送/接收字符串。讀取和寫入字符串的實際函數(shù)已在函數(shù)中定義,這使得在主代碼中更容易使用UART端口,但我們不會介紹此代碼的說明。

void main(void)

{

// Configure pins as digital

ANSELA = 0;

ANSELC = 0;

OSCCONbits.IRCF = 0b1110;

configUART();

while(1)

{

sendStringUART(“Hello, this is the PIC16F1825”);

readStringUART(stringBuffer);

}

}

這些函數(shù)提供了有用的功能,下面是函數(shù)原型:

void configUART(void);

void sendByteUART(char data);

void sendStringUART(const char *string);

void readStringUART(char *buffer);

結(jié)果

如果一切都按計劃進(jìn)行,當(dāng)Python程序運(yùn)行并且PIC設(shè)備打開時,我們應(yīng)該會看到類似于下面顯示的窗口的內(nèi)容。如果是這樣,那么我們的PIC程序和Python程序就能完美地相互通信。雖然這個例子非常簡單,但它表明Python可以很容易地集成到微控制器項目中,包括PIC,AVR,STM,Arduino甚至Raspberry Pi!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

    90012
  • 串行端口
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    12078
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    請問如何將文件從 PC 傳輸?shù)?visionfive2?

    如何將文件從 PC 傳輸?shù)?visionfive2?
    發(fā)表于 02-03 07:49

    如何使用Python讀取不間斷數(shù)據(jù),并將其傳輸?shù)絃abVIEW進(jìn)行處理?

    使用Python讀取Count,如何將讀取到的數(shù)據(jù)傳輸至Labview;傳輸過程中Python要保持讀取的動作,不能停止。
    發(fā)表于 01-23 11:09

    解析TUSB2036:通用串行總線2或3端口集線器的卓越之選

    解析TUSB2036:通用串行總線2或3端口集線器的卓越之選 在現(xiàn)代電子設(shè)備中,USB集線器的應(yīng)用極為廣泛,它能夠擴(kuò)展USB端口數(shù)量,滿足多設(shè)備連接需求。其中,德州儀器(TI)推出的TUSB2036
    的頭像 發(fā)表于 12-31 15:25 ?268次閱讀

    如何將某個函數(shù)或變量放在固定的地址 ?

    如題,如何將某個函數(shù)或者變量放在固定的地址?類似于__attribute__( at(絕對地址) ),用的nucleistudio ide, __attribute__( at(絕對地址) )出現(xiàn)警告 at屬性被忽視,有類似的屬性嗎?
    發(fā)表于 11-07 06:07

    如何將GCC項目導(dǎo)入NuEclipse?

    如何將GCC項目導(dǎo)入NuEclipse?
    發(fā)表于 09-01 07:04

    請問如何將ISP寫入Nuvoton 8051 MCU系列?

    如何將ISP寫入Nuvoton 8051 MCU系列?
    發(fā)表于 08-18 07:34

    如何將I2S與音頻源一起使用?

    所示:- 時鐘 = P4 WS = P5 DO=P15 DI=P14 此后,我保存了它并構(gòu)建了文件,將其刷入主板并打開了 ClientControl。 然后我打開端口 BR/EDR 與藍(lán)牙耳機(jī)連接
    發(fā)表于 06-30 07:36

    如何將K230 image轉(zhuǎn)成jpg?

    如何將K230image轉(zhuǎn)成jpg,我想獲取圖片,傳回我自己的系統(tǒng) 你好,可以使用img.to_jpeg()來對其進(jìn)行壓縮。
    發(fā)表于 06-12 06:41

    技術(shù)分享 | 迅為RK3568開發(fā)板如何將 Linux 板卡虛擬成U盤

    技術(shù)分享 | 迅為RK3568開發(fā)板如何將 Linux 板卡虛擬成U盤
    的頭像 發(fā)表于 06-04 10:57 ?1111次閱讀
    技術(shù)分享 | 迅為RK3568開發(fā)板<b class='flag-5'>如何將</b> Linux 板卡虛擬成U盤

    MAX9249多媒體串行鏈路串行器,帶有LVDS系統(tǒng)接口技術(shù)手冊

    MAX9249串行器帶有LVDS系統(tǒng)接口,采用Maxim吉比特多媒體串行鏈路(GMSL)技術(shù)。MAX9249串行器與GMSL解串器配合使用,構(gòu)成完整的數(shù)字
    的頭像 發(fā)表于 05-28 16:43 ?1059次閱讀
    MAX9249多媒體<b class='flag-5'>串行</b>鏈路<b class='flag-5'>串行</b>器,帶有LVDS系統(tǒng)接口技術(shù)手冊

    如何將CYPD3125用于DRP USB端口?

    我正在嘗試 CYPD3125 用于 DRP USB 端口。 當(dāng)我的 5V 電源(當(dāng)我的端口充當(dāng) DFP 和電源時)通電時,我無法從我的 PD 充電器吸收電力。 在 PD 充電器的電源切斷之前,我
    發(fā)表于 05-06 11:02

    如何將firware安裝到使用MC9S08JS16CWJ的新USBDM中?

    我正在根據(jù)您名為 USBDM_SWD_SER_JS16CWJ_V3_1 的文件制作一個 USBDM。 現(xiàn)在,我遇到了一個問題,我不知道如何將 firware 安裝到使用 MC9S08JS16CWJ
    發(fā)表于 03-24 07:46

    如何將Linux安裝包快速轉(zhuǎn)成玲瓏包

    本篇將以 motrix 為例為大家展示如何將 Linux 安裝包快速轉(zhuǎn)成玲瓏包。
    的頭像 發(fā)表于 03-12 16:01 ?1656次閱讀
    <b class='flag-5'>如何將</b>Linux安裝包快速轉(zhuǎn)成玲瓏包

    如何將Keras H5模型轉(zhuǎn)換為中間表示 (IR) 格式?

    第 1 步: Keras H5 模型轉(zhuǎn)換為保存的型號格式 安裝 依賴關(guān)系: cd deployment_toolsmodel_optimizerinstall_prerequisites
    發(fā)表于 03-07 06:11

    使用Yolo-v3-TF運(yùn)行OpenVINO?對象檢測Python演示時的結(jié)果不準(zhǔn)確的原因?

    的模型與對象檢測 Python* Demo 配合使用時無法檢測對象: python3 open_model_zoo/demos/object_detection_demo/python
    發(fā)表于 03-06 06:31