色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

ts7680演示服務器如何實現(xiàn)GPIO支持

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Michael Schmidt ? 2022-10-12 10:00 ? 次閱讀

TS-7680 采用標準系統(tǒng)架構介面來控制 GPIO,因此支持 GPIO 的軟件包可由 Sysfs 接口在任何電路板上使用。

要控制GPIO,我們必須首先將GPIO編號寫入,然后使用文件讀取和寫入方向(輸入的有效值為“輸入”,輸出為“輸出”) 。我們還使用文件讀取和寫入GPIO的值,其中有效值為“高”和“低”。/sys/class/gpio/export/sys/class/gpio/gpio#/direction/sys/class/gpio/gpio#/direction

現(xiàn)在,讓我們看一下 中的實現(xiàn)。首先,我們需要“fs”模塊,因為我們將與文件系統(tǒng)中的 sysfs 文件進行交互以控制我們的 GPIO:gpio.js

var fs = require(“fs”)

在執(zhí)行其他任何操作之前,讓我們實現(xiàn)一個函數(shù),以確保在實際訪問控制 GPIO 的 sysfs 文件之前已執(zhí)行 GPIO 初始化。這相當簡單。只需嘗試將 GPIO 編號寫入導出文件并返回指示它是否成功的布爾值:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5Yjk2YjZhMmU1OWUuanBnJnZlcnNpb249MDAwMCZzaWc9ZmY2NjMwM2I2YjIxNTg5MjYyZThkYWI1MzY0YWI0MjI253D

現(xiàn)在讓我們看一下該函數(shù)。當我們寫入 sysfs 文件時,我們將編寫一個字符串,該字符串將以某種方式命令內核。此函數(shù)打開指定的文件并寫入字符串。由于寫入操作非常小,并且無需接觸任何存儲介質即可與內核交互,因此我們使用同步寫入。發(fā)生的任何錯誤都將引發(fā)異常,我們將捕獲該異常以確定是否返回成功(true)或不返回(false)。TryWrite

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5Yjk3NjMyMDE5ZDYucG5nJnZlcnNpb249MDAwMCZzaWc9MzJjZGRmOGM0NTQyYTRlMTMyYTcyYTU4OWI3MTJiYTg253D

現(xiàn)在,我們已準備好實際讀取或寫入 GPIO。該函數(shù)將讀取 GPIO 編號并返回指示 GPIO 當前狀態(tài)的字符串。如果 GPIO 是輸入,則返回的值將為“I”或 “;如果 GPIO 作為輸出被主動驅動,則返回的值將為 ”“ 或 ”“。如果出現(xiàn)問題,也可以返回“”。gpio_getNPUT_HIGHINPUT_LOWHIGHLOWERROR

讓我們一步一步地看看該怎么做。首先,我們根據(jù)傳遞的 GPIO 編號獲取 GPIO 文件的路徑:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5Yjk4MDVlZWU2NTYucG5nJnZlcnNpb249MDAwMCZzaWc9MmJlNzcyNTQyM2IxNjhhNzU1ZTIwZmQ0OTY5MjBjYmI253D

在此之后,我們確保在sysfs中初始化GPIO,如果不成功,則返回錯誤。例如,傳遞的值可能無效:

if (!gpio_init(path,num)) return “ERROR”

然后,我們可以通過讀取相對于GPIO路徑的文件來獲得GPIO的方向。這將是“”表示輸出,或“”表示輸入:directionOUTIN

var dir=fs.readFileSync(path+“/direction”, “utf8”)

接下來,我們通過讀取文件來獲取GPIO的值。這將是一個“”或“,”,它將轉換為一個數(shù)字:value10

var data=Number(fs.readFileSync(path+“/value”, “utf8”))

最后,我們將方向/值對轉換為相應的字符串,該字符串返回給調用者:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5Yjk4MTM4MzNiZTYucG5nJnZlcnNpb249MDAwMCZzaWc9MzFiN2Y5MDlhOWEzMzBmY2U4MzdhOWNhYmQwYjM1ZDk253D

Writing to a GPIO

下面是用于寫入 GPIO 的函數(shù)。就像 在 中一樣,我們根據(jù) GPIO 編號檢索基本路徑,并確保 GPIO 已初始化:gpio_setgpio_get

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5Yjk4MWIwMjMxMDcucG5nJnZlcnNpb249MDAwMCZzaWc9NDM3ZWIyMGE5MTQ3YzUzMzA0ZGQyYTI3MmM5NGUzMGE253D

現(xiàn)在,我們將傳遞的值(即“,”“,”或“”)轉換為要發(fā)送到方向寄存器的命令:INPUTHIGHLOW

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5Yjk4MWZkYzE2NmYucG5nJnZlcnNpb249MDAwMCZzaWc9Y2NkZmUzZGRlMzhiYmVlNjgyOTMzN2ZlOWU5Y2RmNzU253D

剩下的就是編寫命令并將成功或失敗返回給調用方:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5Yjk4MmUxZTk4M2YucG5nJnZlcnNpb249MDAwMCZzaWc9N2YwYjNmMDQ2YTIwMTk3MWI0NDg0MjNmZTFiYWU0YWM253D

處理 HTTP 請求

此時,我們已準備好編寫函數(shù)來處理 HTTP 請求以執(zhí)行所請求的函數(shù)。首先,我們將 URL 拆分為多個組件。第一個組件將是基本網(wǎng)址(例如“gpio”);如果有兩個組件,我們將獲得指定的GPIO值;如果有三個組件,我們將指定的GPIO設置為指定的值。如果組件數(shù)量有任何不同,則發(fā)出的請求無效,我們將返回錯誤:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5Yjk4M2M0YmMyYjkucG5nJnZlcnNpb249MDAwMCZzaWc9NzY0M2RiOTVhNGY5YjQ3NDE1NzViOWI3ZWNkM2M0NmE253D

我們要做的下一件事是將GPIO編號拆分為一個數(shù)組。我們使用逗號字符執(zhí)行此操作,它允許將多個 GPIO 指定為逗號分隔的列表。如果不存在逗號,則僅指定一個 GPIO,并且將返回一個包含單個元素的數(shù)組:

var numlist = url[1].split(“,”)

現(xiàn)在我們準備開始發(fā)送我們的回復。由于正在發(fā)送JSON字符串,請繼續(xù)寫出開頭的數(shù)組字符:

res.write(“[”)

接下來,我們在請求中的所有GPIO號碼上設置一個循環(huán):

for (i=0;i

因為我們正在編寫一個JSON數(shù)組,所以需要在每個元素之間發(fā)送一個逗號。如果前面有一個元素,我們可以在每個元素的開頭寫逗號:

if (i》0) res.write(“,”)

現(xiàn)在,我們將GPIO數(shù)字轉換為整數(shù),并進行一些錯誤檢查:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5Yjk4NDc5NTQ4ZDQucG5nJnZlcnNpb249MDAwMCZzaWc9NzVkYTE5YTQzMmIyMmE4YzlhYzBlNGE4Y2E2YWEyZGI253D

接下來,我們查看參數(shù)的數(shù)量,以決定是獲取還是設置GPIO信息。我們存儲返回字符串并將其寫入輸出:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5Yjk4NzJmMDM5MGUucG5nJnZlcnNpb249MDAwMCZzaWc9NTU0YzMzNjBlMWRiNzMzYzRhZTAxM2FiMmQ3NDA5YmI253D

循環(huán)完成后,我們關閉JSON數(shù)組并完成向客戶端的發(fā)送:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5Yjk4NzZmMTU0ZGQucG5nJnZlcnNpb249MDAwMCZzaWc9NTVjYWJiNWI2NWYwNTAxZjQxYWY1ZGZiY2E2YmU1OGE253D

最后是我們的模塊。導出功能。我們處理任何選項并設置端點以連接到我們的gpio功能:

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5Yjk4N2U2NzQ0NGUucG5nJnZlcnNpb249MDAwMCZzaWc9MDI4NmFkYmQ3NmFmNjFjNDk2M2VhMmJhY2ViNjUwMjY253D

下一部分將討論如何支持加速計

審核編輯:郭婷

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

    關注

    12

    文章

    9123

    瀏覽量

    85328
  • GPIO
    +關注

    關注

    16

    文章

    1204

    瀏覽量

    52055
收藏 人收藏

    評論

    相關推薦

    什么是服務器虛擬化?私人云服務器

    什么是 服務器虛擬化 ? 服務器虛擬化是一種將物理服務器轉化為虛擬服務器的過程,使得多個虛擬服務器可以在同一臺物理
    的頭像 發(fā)表于 08-08 10:44 ?1350次閱讀

    linux服務器和windows服務器

    管理工具。這 使得Windows服務器更適合那些對服務器操作系統(tǒng)不太熟悉的用戶,如小型企業(yè)和個人網(wǎng)站的管理員。 Windows服務器還擁有廣泛的應用支持。在商業(yè)應用領域,很多企業(yè)軟件和
    發(fā)表于 02-22 15:46

    【NanoPi NEO申請】基于NanoPi NEO的簡單服務器的制作

    申請理由:項目描述:利用NanoPi NEO開發(fā)套件制作一個簡單的家庭終端服務器,能夠實現(xiàn)1、利用GPIO口連接外部傳感以測量相關的值2、設備接入以訪問相關傳感
    發(fā)表于 10-25 16:17

    Web服務器演示的源代碼在哪里?

    我已經(jīng)購買了ML505,并且我已經(jīng)嘗試了它附帶的Web服務器演示。我的計算機檢測到它并建立連接,但我無法在指定的地址顯示一個網(wǎng)頁(我嘗試了許多設置無濟于事)。但是,真正的問題是 - Web服務器
    發(fā)表于 08-21 09:35

    如何實現(xiàn)SSH服務器

    你好,有人已經(jīng)實現(xiàn)了SSH(2版)服務器嗎?你好嗎?SSH只是帶有SSL的telnet,還是有其他的東西有一個基本的SSH服務器?如何實施SFTP?感謝
    發(fā)表于 03-24 10:14

    OPC服務器開發(fā)淺談 — 服務器模型

    的開發(fā),主要包括兩大部分的工作:OPC接口的實現(xiàn)和設備驅動部分的開發(fā)。OPC接口的實現(xiàn),實質上就是按照OPC標準進行COM接口開發(fā),對于大多數(shù)的OPC服務器開發(fā)者來說,我認為沒有必要涉足。目前市場...
    發(fā)表于 07-02 08:29

    服務器與物理服務器的區(qū)別是什么?

    是指物理上的單獨服務器,物理服務器的構成包括處理、硬盤、內存、系統(tǒng)總線。用戶可以方便的進行遠程維護,免費重裝系統(tǒng) 硬件級別上實現(xiàn)云主機之間的完全隔離; 內置冗余的共享存儲和智能備份,
    發(fā)表于 12-09 09:56

    ASUS華碩 TS500-E6/PS4服務器主板BIOS 0

    ASUS華碩 TS500-E6 PS4服務器主板BIOS 0902版 主板驅動
    發(fā)表于 12-06 11:54 ?24次下載

    功能服務器支持的操作系統(tǒng)

    功能服務器支持的操作系統(tǒng)              目前功能服務器支持的操作系統(tǒng)主要
    發(fā)表于 01-08 14:49 ?880次閱讀

    光盤鏡像服務器支持的操作系統(tǒng)

    光盤鏡像服務器支持的操作系統(tǒng)               目前光盤鏡像服務器支持
    發(fā)表于 01-09 11:48 ?742次閱讀

    浪潮天梭TS850多路服務器

    浪潮天梭TS850是我國國內第一款自主設計的八路服務器,為我國云計算的自主可控奠定了硬件基礎。 成功推出國內第一款自主設計的八路服務器天梭TS850。這款
    發(fā)表于 03-25 15:18 ?31次下載

    AMD重新構思服務器科技,現(xiàn)可支持APU服務器軟件

    AMD重新構思服務器科技,現(xiàn)可支持APU服務器軟件,幫助服務器適應現(xiàn)代數(shù)據(jù)中心工作負載的新一代開發(fā)工具亮相APU13開發(fā)者峰會。
    發(fā)表于 11-15 10:19 ?655次閱讀

    如何實現(xiàn)TS-7680硬件的支持

      一旦 npm 升級,任何時候它運行都會返回一個錯誤,說 npm 不支持 node.js v0.10.29,你應該升級到更新的版本。忽略此警告,因為 v0.10.29 是 TS-7680 支持的最新版本,因為較新的版本缺少 A
    的頭像 發(fā)表于 06-29 14:20 ?782次閱讀
    如何<b class='flag-5'>實現(xiàn)</b>對<b class='flag-5'>TS-7680</b>硬件的<b class='flag-5'>支持</b>

    并發(fā)服務器的設計與實現(xiàn)

    并發(fā)服務器支持多個客戶端的連接,最大可接入的客戶端數(shù)取決于內核控制塊的個數(shù)。當使用Socket API時,要使服務器能夠同時支持多個客戶端的連接,必須引入多任務機制,為每個連接創(chuàng)建一個
    的頭像 發(fā)表于 04-25 15:35 ?842次閱讀
    并發(fā)<b class='flag-5'>服務器</b>的設計與<b class='flag-5'>實現(xiàn)</b>

    gpu服務器是干什么的 gpu服務器與cpu服務器的區(qū)別

     相比于傳統(tǒng)的CPU服務器,GPU服務器支持同時計算大量相似的計算操作,可以實現(xiàn)更強的并行計算性能。GPU服務器通常配備多個高性能的GPU,
    的頭像 發(fā)表于 12-02 17:20 ?1913次閱讀
    主站蜘蛛池模板: 国内精品久久| 熟女人妻-蜜臀AV-首页| 成a人片亚洲日本久久| 我在厨房摸岳的乳HD在线观看| 久久国产高清字幕中文| YY6080A旧里番在线观看| 一二三四韩国免费观看| 日本久久精品毛片一区随边看| 黑粗硬大欧美在线视频| 成都电影免费中文高清| 俄罗斯极品hd| 99久久麻豆AV色婷婷综合| 亚洲成AV人电影在线观看| 欧美午夜a级精美理论片| 韩国精品无码少妇在线观看网站| 国产在线高清视频无码| 国产精品色欲AV亚洲三区软件| 99热久久爱五月天婷婷| 97免费视频在线观看| 亚洲一区二区三区91| 久久久久久人精品免费费看| 国产欧美日韩国产高清| 国产精品99久久久久久动态图| caoporn 超碰在线视频| 伊人久久大香线蕉综合99| 2021年国产精品久久| 伊人免费在线| 伊人久久影院大香线蕉| 99视频这里只有精品国产| 中文无码字慕在线观看| 一二三四视频免费社区5| 99久久久久国产精品免费| 国产AV在线传媒麻豆| 国产成人在线播放视频| 大香伊蕉在人线国产97| 高清午夜福利电影在线| 同时和两老师双飞| 青青草久久| 日本免费一区二区三区最新vr| 亚洲精品久久无码AV片银杏| 校花在公车上被内射好舒服|