在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

454398 ? 來源:工程師吳畏 ? 2019-07-31 08:56 ? 次閱讀

原理圖

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

的 電路 的

獲取PySerial

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

pip install PySerial

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

PySerial

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

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

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

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

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

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

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

import serial

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

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

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

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

open() - 這將打開串口

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

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

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

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

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

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

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

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

/li》

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

打印“serialString”的值

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

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)。幸運的是,這里使用的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外設;然后通過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é)果

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

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

    關(guān)注

    56

    文章

    4797

    瀏覽量

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

    關(guān)注

    0

    文章

    31

    瀏覽量

    11667
收藏 人收藏

    評論

    相關(guān)推薦

    bq35100與基于Li-Primary的應用配合使用

    電子發(fā)燒友網(wǎng)站提供《bq35100與基于Li-Primary的應用配合使用.pdf》資料免費下載
    發(fā)表于 10-14 09:38 ?0次下載
    <b class='flag-5'>將</b>bq35100與基于Li-Primary的應用<b class='flag-5'>配合</b>使用

    如何將LVDS/OLDI橋接到HDMI/DVI

    電子發(fā)燒友網(wǎng)站提供《如何將LVDS/OLDI橋接到HDMI/DVI.pdf》資料免費下載
    發(fā)表于 09-27 09:35 ?1次下載
    <b class='flag-5'>如何將</b>LVDS/OLDI橋接到HDMI/DVI

    如何將BQ35100配置為EOS模式

    電子發(fā)燒友網(wǎng)站提供《如何將BQ35100配置為EOS模式.pdf》資料免費下載
    發(fā)表于 09-11 10:03 ?0次下載
    <b class='flag-5'>如何將</b>BQ35100配置為EOS模式

    TUSB2036通用串行總線的2或3端口集線器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TUSB2036通用串行總線的2或3端口集線器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 07-09 10:43 ?0次下載
    TUSB2036通用<b class='flag-5'>串行</b>總線的2或3<b class='flag-5'>端口</b>集線器數(shù)據(jù)表

    TUSB2077A 7端口通用串行總線集線器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TUSB2077A 7端口通用串行總線集線器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 07-08 09:48 ?0次下載
    TUSB2077A 7<b class='flag-5'>端口</b>通用<b class='flag-5'>串行</b>總線集線器數(shù)據(jù)表

    TUSB2046x 4端口集線器,用于帶可選串行EEPROM接口的通用串行總線數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TUSB2046x 4端口集線器,用于帶可選串行EEPROM接口的通用串行總線數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 06-25 09:36 ?0次下載
    TUSB2046x 4<b class='flag-5'>端口</b>集線器,用于帶可選<b class='flag-5'>串行</b>EEPROM接口的通用<b class='flag-5'>串行</b>總線數(shù)據(jù)表

    使用USBUART組件與主機PC通信,如果在串行端口打開的情況下終止固件,主機端為什么會報錯?

    我正在使用 USBUART 組件與主機 PC 通信,我一直在尋找某種機制來關(guān)閉 MCU 端的串行端口,或者至少通知主機我關(guān)閉端口。 我遇到過這樣一個問題:如果在
    發(fā)表于 06-03 08:41

    如何將Littlefs安裝到通過qspi連接到電路板的外部串行閃存上?

    一款 PSoC6 套件,并將 mtb-littlefs 子程序添加到我的項目和 XMC7100 套件中。 能行嗎? 如何將 Littlefs 安裝到通過 qspi 連接到電路板的外部串行閃存上? 我
    發(fā)表于 05-27 06:03

    在嵌入式設計中擴展串行端口的入門知識

    大多數(shù)嵌入式系統(tǒng)都至少提供兩個串口。然而,有些系統(tǒng)需要更多。因此,這需要以某種方式擴展串行端口的數(shù)量。設計人員可用的一些選擇包括 USB 到串行端口、I2C 到
    發(fā)表于 05-03 09:30 ?256次閱讀
    在嵌入式設計中擴展<b class='flag-5'>串行</b><b class='flag-5'>端口</b>的入門知識

    CYBT-243053-EVAL上未檢測到串行端口的原因?

    任何調(diào)用串行端口的應用程序, CAN 設備管理器中看到串行端口。 我在使用Silicon Labs USB串行
    發(fā)表于 03-01 06:39

    ELF 1技術(shù)貼|如何將Python3.6.9移植到開發(fā)板上

    在ELF1開發(fā)板的Linux4.1.15eMMC鏡像中,默認預裝了Python2.7。為了適應更多應用場景,有些小伙伴可能需要移植其他版本的Python,下面將以Python3.6.9為例詳細介紹
    的頭像 發(fā)表于 02-22 14:06 ?433次閱讀
    ELF 1技術(shù)貼|<b class='flag-5'>如何將</b><b class='flag-5'>Python</b>3.6.9移植到開發(fā)板上

    如何將LED連接到Arduino板并使其閃爍

     在本快速入門指南中,您將學習如何將 LED 連接到 Arduino 板并使其閃爍。
    的頭像 發(fā)表于 02-11 10:53 ?2224次閱讀
    <b class='flag-5'>如何將</b>LED連接到Arduino板并使其閃爍

    如何將光敏電阻連接到Arduino板并讀取電壓

    在本快速入門指南中,您將學習如何將光敏電阻連接到Arduino板并讀取電壓。您將首先使用串行監(jiān)視器來了解光傳感器的行為方式,然后構(gòu)建一個電路,在天黑時自動打開燈。
    的頭像 發(fā)表于 02-11 10:45 ?3998次閱讀
    <b class='flag-5'>如何將</b>光敏電阻連接到Arduino板并讀取電壓

    什么是串行端口?有哪幾種分類?

    什么是串行端口?有哪幾種分類? 串行端口是計算機中用于進行數(shù)據(jù)傳輸?shù)囊环N接口類型,通過單一的數(shù)據(jù)線逐位地傳輸數(shù)據(jù)。與串行
    的頭像 發(fā)表于 02-02 15:40 ?2114次閱讀

    求助,是否可以使用PIC監(jiān)控串行端口

    是否可以使用 PIC 監(jiān)控串行端口
    發(fā)表于 01-22 06:28
    主站蜘蛛池模板: 初恋视频黄色| 日本免费不卡在线一区二区三区| 一区二区免费视频| 四虎影视免费看| 国产精品igao在线观看樱花日本| 久久午夜精品| 在线视频亚洲色图| 久久久噜噜噜久久网| 五月婷婷一区二区| 国产一级大片在线观看| 久草色香蕉| 亚洲色图欧美视频| 丁香婷婷视频| 黄色大片在线免费观看| 日本怡红| 全免费一级午夜毛片| 在线网站你懂得| 国产精品va一区二区三区| 2019天天干天天操| 四虎永久在线视频| 午夜性刺激免费视频观看不卡专区| 国产黄色网| 欧美天堂视频| 久久久午夜视频| 亚洲国产精品婷婷久久久久| 成年人看的毛片| 亚洲欧美视频网站| 午夜看大片| 永久免费在线播放| 美女扒开尿口给男人看大全| 久久久精品免费国产四虎| 国产精品青草久久久久福利99| 午夜免费福利片观看| 一级午夜| 国产成人精品系列在线观看 | 热re99久久精品国产99热| 美女免费视频是黄的| www日| 三级成人影院| 久久精品国产福利国产琪琪| 四虎影院在线视频|