国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

樹莓派學習筆記(五)串口通信

levinit / 2846人閱讀

摘要:觀看學習上官可編程陳立臣老師的樹莓派視頻,在其過程中所記錄的學習筆記一串口通信概念串口通信用于多機通信串口通信屬于全雙工通信,即雙方可以同時進行交流半雙工通信,一次只允許一方進行通信樹莓派進行串口通信一般要連接兩根線和

觀看學習上官可編程陳立臣老師的樹莓派視頻,
在其過程中所記錄的學習筆記

一、串口通信概念

  • 1、串口通信用于多機通信
  • 2、串口通信屬于全雙工通信,即雙方可以同時進行交流
    ??????????????????????????????半雙工通信,一次只允許一方進行通信
  • 3、樹莓派進行串口通信一般要連接兩根線TXD和RXD,
    ???????連接時要相反連接(即樹莓派的TXD要與通信方的RXD相連,RXD與TXD相連)
  • 4、進行串口通信時,數據格式(數據位、停止位、奇偶校驗位)和波特率,通信雙方要保持一致

二、串口通信編程

  • 樹莓派的串口是/dev/ttyAmA0(Linux一切皆文件)

1、配置串口

  • 修改/boot/cmdline.txt文件,將“console=ttyAMA0,115200”刪除,
    該語句作用為樹莓派啟動時用串口來打印調試信息,使用串口通信則需刪除
  • sudo reboot重啟

2、連線

樹莓派與USB轉TTL相連
?????TXD —— RXD
?????RXD —— TXD
????????0 V —— GND

3、調用函數

#include 	int wiringPiSetup (void) 返回執行狀態,0表示成功,-1表示失敗	void delay (unsigned int howLong) 暫停指定的毫秒數	void delayMicroseconds (unsigned int howLong) 暫停指定的微妙數

?

#include 	int serialOpen (char *device, int baud)	打開并初始化串口	void  serialPutchar (int fd, unsigned char c)  發送一個字節的數據到串口	void  serialPuts (int fd, char *s)  發送一個字符串到串口		int   serialDataAvail (int fd)  獲取串口緩存中可用的字節數	int serialGetchar (int fd)  從串口讀取一個字節數據返回,讀取前使用serialDataAvail判斷

4、示例代碼1(向串口發送數據)

#include #include #include int main(){        int fd;        if(wiringPiSetup()==-1){                printf("初始化失敗/n");                return -1;        }        fd = serialOpen("/dev/ttyAMA0",9600);        while(1){        //      serialPutchar(fd,"c");                serialPuts(fd,"hello world/r/n");	//   /r/n表示回車并換行                delayMicroseconds(1000000);//delay(1000);        }        return 0;}

5、示例代碼2(讀取串口數據,終端輸出相應語句)

#include #include #include int main(){        int fd;        int cmd;        if(wiringPiSetup()==-1){                printf("初始化失敗/n");                return -1;        }        fd = serialOpen("/dev/ttyAMA0",9600);        while(1){                while(serialDataAvail(fd)!=-1){                        cmd = serialGetchar(fd);                        //printf("data: %d/n",cmd);                        //printf("data: %c/n",cmd);                        if(cmd=="2"){                                serialPuts(fd,"data is 2/r/n");                        }                        if(cmd=="3"){                                serialPuts(fd,"data is 3/r/n");                        }                        if(cmd=="4"){                                serialPuts(fd,"data is 4/r/n");                        }                }        }        return 0;}

創作不易,動動小手點贊收藏

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/121230.html

相關文章

  • nodejs和樹莓開發以及點亮RGB的LED燈代碼

    摘要:前段時間集團舉行前端比賽,借此機會熟悉了樹莓派相關的東西,特此記錄一些相關的文檔和開發指南。一個鏈接控制硬件的基礎庫,比如控制串口,和鏈接串口的設備進行通信等,他有很多版本,樹莓派的版本見這里安裝有點,麻煩。 前段時間集團舉行前端IOT比賽,借此機會熟悉了樹莓派相關的東西,特此記錄一些相關的文檔和開發指南。 先介紹一些樹莓派的入門教程 阮一峰的樹莓派入門 微雪電子-樹莓派硬件中文官網 ...

    liuchengxu 評論0 收藏0
  • Linux學習

    摘要:學習樹莓派的的初識學習樹莓派的的初識初識初識學習書籍正點原子嵌入式驅動開發指南章節第三十章學習內容書中介紹的獲取可以有三個途徑第一個是的官方代碼。網上的燒寫樹莓派教程很多,但是為了學習我選擇了官方的代碼。Linux學習 - 樹莓派4b的U-Boot的初識初識U-Boot學習書籍:《【正點原子】I.MX6U嵌入式Linux驅動開發指南V1.5.1》章節:第三十章學習內容:書中介紹uboot的獲...

    不知名網友 評論0 收藏0
  • 樹莓學習筆記(六)交叉編譯概念及安裝使用

    摘要:一交叉編譯概念什么是交叉編譯交叉編譯是在一個平臺上生成另一個平臺上的可執行代碼。也要樹莓派有時又是因為目的平臺還沒有建立,連操作系統都沒有,根本談不上運行什么編譯器。 ...

    songze 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<