国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

開機自啟失敗讀串口失敗 read failed: device reports readiness to read but returned no data解決

這篇具有很好參考價值的文章主要介紹了開機自啟失敗讀串口失敗 read failed: device reports readiness to read but returned no data解決。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

??最近在開始接觸樹莓派,想要完成的功能是在樹莓派上跑一個Python程序獲取樹莓派串口的數(shù)據(jù),然后將Python程序配置為開機自啟,讓其上電之后就自動開始獲取串口數(shù)據(jù)并上傳數(shù)據(jù)到云端(我用的是MQTT服務(wù)器,如果有需要了解這部分內(nèi)容小伙伴留言,我再抽時間把這部分的補充一篇分享~)


一、遇到的問題

1、首次編寫程序的時候手動開啟沒有問題,非常順利的取到串口數(shù)據(jù)
2、配置為開機自啟之后,樹莓派重新上電,出現(xiàn)問題:
(1)自啟動的Python文件并沒有正常上傳數(shù)據(jù)到云端;
(2)自啟動上傳數(shù)據(jù)失敗后,我手動啟動Python程序發(fā)現(xiàn)重啟設(shè)備之前還能正常采集串口數(shù)據(jù)的程序不能正常工作了,出現(xiàn)了丟包和報錯的情況,如下圖所示:

開機自啟失敗讀串口失敗 read failed: device reports readiness to read but returned no data解決

接下來一個問題一個問題地解決!

二、問題解決

0.先介紹一個我用的自啟方法

??我是要自啟一個Python腳本,找了很多自啟的方法,最后選用了操作最簡單的(因為我就一個Python腳本也很簡單,生活本簡單,何必搞那么復(fù)雜是吧~)
??這個方法就是在rc.local文件中進行操作,所以我們稱它為rclocal方法吧,方法很簡單:

(1)終端敲入命令:sudo gedit /etc/rc.local (gedit沒有裝的話需要裝一下,sudo apt-get install gedit 就可以)

(2)敲完命令之后,會進入rc.local文件,然后做些修改即可(這個我也查了好多,下面這個是比較好使的一種方法)

開機自啟失敗讀串口失敗 read failed: device reports readiness to read but returned no data解決
關(guān)鍵兩個位置都框出來了,文本我寫在下面方便大家ctrl c、ctrl v
#!/bin/bash
su pi -c "python3 換上你自己的文件路徑 &"
注: &表示該程序后臺運行,②這句話一定要放到exit 0之前

(3)重啟樹莓派即可
??

1.Python程序自啟后沒有數(shù)據(jù)上傳到云端

??從后臺上是可以看到Python程序已經(jīng)自啟了(可以用指令 sudo systemctl status rc-local 查看,如果程序自啟失敗,會在里面提示錯誤信息,如下圖所示)
開機自啟失敗讀串口失敗 read failed: device reports readiness to read but returned no data解決

??但是確實沒有數(shù)據(jù)上傳,考慮到我的程序需要聯(lián)網(wǎng)上傳數(shù)據(jù),我估計是樹莓派剛啟動連接網(wǎng)絡(luò)需要時間,而程序在網(wǎng)絡(luò)還沒有建立的時候已經(jīng)開始運行,所以導(dǎo)致程序連接云端失敗,但是程序確實是開始跑了,而且已經(jīng)開始采集串口數(shù)據(jù)了。
??然后我在程序連接云端前面加了十秒的延遲,果然重新上電之后數(shù)據(jù)在十秒之后成功上傳到了云端,自啟的問題解決了!

import time 
time.sleep(10)

2.解決串口數(shù)據(jù)丟包和報錯的異常

??這個問題是一個很坑的問題,我為找這個問題找了三天,嘗試了各種方法,把樹莓派上兩個串口和USB口都用了個遍,嘗試了十幾種排錯的方法,都是不行,始終都是更換串口數(shù)據(jù)就正常了,但是重啟后我再手動啟動串口就又丟包報錯,我一度以為是我自己串口配置的有問題,導(dǎo)致樹莓派重啟之后串口緩存堵塞之類的。結(jié)果終于想到在1、中我做了一個自啟程序,然后我又手動啟動了該自啟程序調(diào)試,相當于有兩個腳本在同時獲取一個串口的數(shù)據(jù),自然會丟數(shù)據(jù)了,我簡直…
??可以在終端查看當前后臺運行的程序,如果想要終止自啟程序,然后手動啟動程序調(diào)試的話,可以在終端使用命令htop進入查看CPU占用情況,選中想要結(jié)束的任務(wù),按下 F9 然后 回車 即可終止該任務(wù),如下圖所示,將自啟的程序終止掉后,此時手動啟動該腳本就不會出現(xiàn)丟數(shù)據(jù)和read failed的問題了
開機自啟失敗讀串口失敗 read failed: device reports readiness to read but returned no data解決
注:如果還是存在丟數(shù)據(jù)的問題,可以參考我分享的另一篇:解決Python獲取串口數(shù)據(jù)只能獲取一部分的問題

3.Python讀取串口數(shù)據(jù)依然存在的問題

??python讀取到的數(shù)據(jù)可能一次性讀不到完整一幀數(shù)據(jù),比如我用stm32的串口給樹莓派的串口發(fā)送一個長為70字節(jié)的數(shù)據(jù)幀,每隔三秒發(fā)送一次。樹莓派可以每隔三秒讀到數(shù)據(jù),但是它有時候會把一幀打斷成了三次接收,所以我們還需要寫代碼控制程序?qū)⑦@三段數(shù)據(jù)拼接到一起才行,當然這個拼接需要stm32發(fā)送的數(shù)據(jù)有幀頭幀尾之類的作為拼接的依據(jù),不然容易出現(xiàn)錯誤拼接。

最后-爬坑小能手

??這篇文章可以說是由于我自己傻而寫的,自己給自己挖了個坑,跳進去,用了三天爬出來,但是好在是在爬出來的過程中也看到了很多坑外不會想到的內(nèi)容,這樣想的話坑就不算坑了吧哈哈哈~
??把這篇內(nèi)容分享給大家,希望大家能避開這個很哭笑不得的問題也希望大家在踩到坑的時候欣然接受并從爬坑的過程中掌握重要的經(jīng)驗逐漸成長!

樹莓派是最近剛開始接觸的,感覺非常好玩兒,重點是它體積小但是功能上來說簡直就是個電腦,那就可以做非常非常多的應(yīng)用??!如果可以自己畫個板子把樹莓派的功能裁剪到只滿足自己的開發(fā)需要,那簡直太完美了?。?!后面如果我可以繼續(xù)探索這方面的內(nèi)容,我也盡量抽時間把學(xué)到的內(nèi)容分享給讀者大大們!文章來源地址http://www.zghlxwxcb.cn/news/detail-426000.html

到了這里,關(guān)于開機自啟失敗讀串口失敗 read failed: device reports readiness to read but returned no data解決的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • linux 服務(wù)開機自啟

    Centos有兩種方式,一是修改/etc/rc.local文件,二是使用chkconfig來管理開機自啟(chkconfig無法自啟動源碼包) 等級 等級0:關(guān)機 等級1:單用戶模式 等級2:無網(wǎng)絡(luò)連接的多用戶命令行模式 等級3:有網(wǎng)絡(luò)連接的多用戶命令行模式 等級4:不可用 等級5:帶圖形界面的多用戶模式 等級

    2024年02月13日
    瀏覽(26)
  • Elasticsearch開機自啟

    系統(tǒng): CentOs 在 /etc/systemd/system 下創(chuàng)建一個名為 elasticsearch.service 的文件 將一下配置粘貼進入 elasticsearch.service 文件 LimitNOFILE , LimitMEMLOCK 這兩參數(shù)等同于我們設(shè)置的(必須添加) 保存 elasticsearch.service 后重新加載系統(tǒng)后臺啟動項 此時我們便可以通過 systemctl start elasticsearch 等

    2024年01月16日
    瀏覽(18)
  • C#程序開機自啟

    C#程序開機自啟

    第一種方式 修改注冊表 第二種添加快捷方式到啟動菜單中 添加引用,在 Com 中搜索 Windows Script Host Object Mod

    2024年02月03日
    瀏覽(15)
  • kibana啟動失敗:server is not ready yet

    kibana啟動失敗:server is not ready yet

    這篇文章主要是解決黑馬項目《學(xué)成在線》的p106中的kibana無法正常啟動 首先我們在虛擬機上查看kibana啟動日志 發(fā)現(xiàn)報錯總是在重試某個已經(jīng)創(chuàng)建好的es中的索引.kibana_task_manager 所以我們可以去es中看一下這里的索引是否正常 可以發(fā)現(xiàn)索引名為.kibana_task_manager …的索引是red(非

    2024年02月12日
    瀏覽(48)
  • Android如何實現(xiàn)開機自啟

    開機自啟有很多種辦法,下面用廣播的方式實現(xiàn)。 1、首先先創(chuàng)建廣播,開機代碼 2、在清單文件里面注冊,同時添加權(quán)限 完成

    2024年02月14日
    瀏覽(20)
  • Ubuntu系統(tǒng)設(shè)置開機自啟

    Ubuntu系統(tǒng)設(shè)置開機自啟

    在測試國產(chǎn)操作系統(tǒng):銀河麒麟、UOS統(tǒng)信機器的過程中,發(fā)現(xiàn)開機不自啟,總結(jié)以下幾種方式實現(xiàn)自啟 rc.local腳本是一個Ubuntu開機后自動執(zhí)行的腳本,可以在腳本內(nèi)添加行指令,該腳本位于/etc/路徑下,需要root權(quán)限才能修改,若/etc/rc.d/下也存在rc.local,通常會創(chuàng)建軟連接到/e

    2024年02月13日
    瀏覽(23)
  • Elasticsearch開機自啟腳本

    Elasticsearch開機自啟腳本

    su elk! 切換為 elk 用戶執(zhí)行下面的命令,! 相當于EOF 注意: 以上腳本的用戶為 elk,如果你的用戶不是,則需要替換 以上腳本的 JAVA_HOME 以及 elasticsearch_home 如果不同請?zhí)鎿Q [root@weiyi?~]# chmod +x /etc/init.d/elasticsearch? [root@weiyi?~]# chkconfig --add /etc/init.d/elasticsearch #添加開機自啟動

    2024年02月15日
    瀏覽(14)
  • Docker實現(xiàn)容器開機自啟

    有時候想啟動docker的時候,同時也把docker里面的容器也設(shè)置成自動啟動。 創(chuàng)建容器時,設(shè)置自動啟動容器,? 添加--restart=always 如果創(chuàng)建時未指定 --restart=always ,可通過update 命令設(shè)置 服務(wù)器停機后,再次啟動容器

    2024年02月06日
    瀏覽(29)
  • 創(chuàng)建開機自啟的腳本

    創(chuàng)建開機自啟的腳本

    在啟動許多ros節(jié)點時有多種方式,我推薦使用launch來啟動所有的節(jié)點,這也是一種規(guī)范的方式。以后會慢慢向這個方向靠。 除此之外還可以通過創(chuàng)建的腳本來啟動: 腳本位置不限,只需要: 在里面添加相應(yīng)的內(nèi)容: 然后添加權(quán)限: sudo chmod 777 -R xxx.sh 這樣腳本就創(chuàng)建完了,

    2024年02月09日
    瀏覽(23)
  • docker設(shè)置linux開機自啟

    要在Linux系統(tǒng)上設(shè)置Docker開機自啟,可以按照以下步驟操作: 打開終端并使用root權(quán)限登錄系統(tǒng)。 編輯 /etc/rc.local 文件: sudo vi /etc/rc.local 在文件的最后一行添加以下內(nèi)容: /usr/bin/systemctl start docker.service 保存文件并退出編輯器。 添加可執(zhí)行權(quán)限以使該文件在系統(tǒng)啟動時自動運

    2024年02月14日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包