<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ># 前言 最近做開發工作已經逐步轉到Linux系統上來了,linux上的終端是很方便的工具,在做開發的時候我們往往會用串口來和電腦通信,比如做FPGA開發,我們調試的時候想看一下FPGA內部的寄存器值,或者獲取FPGA內部經過數字電路后的輸出結果,我們就可以在FPGA里面加入串口模塊,實現與PC的通訊,當然,對于樹莓派,licheepi,ARM等的調試,我們都可以這樣做。<br/> 在windows下我們經常使用圖形化的串口調試工具,當我們熟悉linux的操作模式后,也許會對命令模式情有獨鐘,因此雖然在linux環境下有圖形化的串口調試助手,但是使用起來總不如在控制臺中用命令來的靈活。<br/> 因此此次我以licheepi為例,說明如何在linux終端通過串口來實現與licheepi的交互。 ># linux下串口操作 linux是文件系統,是直接可以像操作文件一樣操作串口的,具體介紹如下 [使用linux shell來讀寫串口](http://www.hmoore.net/dlover/fpga/1858266) ># 針對嵌入式串口調試的bash腳本 有了上面介紹的知識,于是就想實現在沒有網絡模塊時,在linux上操作樹莓派,licheepi就如同在本地終端操作一樣的效果,顯然萬能的`shell`可以幫我們完成這個任務,我根據自己的使用習慣,寫了一個腳本,為`mtty.sh`, mtty.sh文件的內容如下: ```bash #!/usr/bin/env bash #------------------------------------------------------- # FileName : mtty.sh # Author :hpy # Date :2020年08月09日 # Description :基于linux終端的串口工具 # :連接樹莓派,licheepi等 #------------------------------------------------------- #++++++++++++++++ 串口參數設置+++++++++++++++++++++ #目標串口設置 /dev/ttyUSB* fdtty=/dev/ttyUSB0 #波特率設置 baud=115200 #+++++++++++++++++++++++++++++++++++++++++++++++++++ tp="/tmp/$(date +%N).txt" exUsb(){ if [ ! -c $fdtty ];then echo "不存在目標串口($fdtty)!退出腳本" exit 0 fi } #自動檢測目標usb 未完成 checkUsb(){ t1=$(ls /dev/ttyUSB*) if [[ $? -gt 0 ]];then read -p "請插入串口后,是否繼續檢測串口y/n?" chechin if [ "$chechin" = "y" ] || [ "$chechin" = "yes" ] then fdtty=$(ls /dev/ttyUSB*) fi else t2=$(ls /dev/ttyUSB*) fi } #鍵盤輸入 getData(){ while((1)) do exUsb read readd echo -e -n "$readd\n" > $fdtty done } #串口有數據接收時就返回 dis(){ while ((1)) do exUsb cat $fdtty | tail -n +2 >> $tp #cat $fdtty >> /tmp/usbget.txt if [[ -s $tp ]];then cat $tp cat /dev/null > $tp #顯示過的就在文件中清除 fi done } info(){ echo "歡迎使用linux終端上的嵌入式串口工具!" echo "使用 <Ctrl-c> 退出" echo "" } main(){ info exUsb stty -F $fdtty -echo raw speed $baud min 0 time 2 &> /dev/null #cat /dev/null > /tmp/usbget.txt echo -e -n "\n" >$fdtty #啟動時發送,以獲取反饋顯示 dis & #顯示線程 getData #鍵盤輸入線程 exit 0 } main ``` 看一看跑這個腳本實現和licheepi交互的效果: 本地linux電腦的終端如下圖: ![](https://img.kancloud.cn/46/06/46060486507ed3dfeaa6d1ab34faa6f2_877x442.png) 使用腳本licheepi后的終端效果: ![](https://img.kancloud.cn/cf/84/cf8469f397de8efd4d8af85367a8632c_895x318.png) ![](https://img.kancloud.cn/e1/86/e18615ff4d9d2019d44ad49d2ad18ae4_854x358.png) ># 連接方法 linux下的串口設備為`/dev/ttyUSB*`,于是我們首先可以先將連接到licheepi的串口從`linux`電腦上拔出,然后在終端輸入命令 `ls /dev/ttyUSB*` 查看當前有哪些串口,如果沒有串口設備將會報錯,如下 ![](https://img.kancloud.cn/5d/e4/5de4e6a3aa0f21c5b1aeafd79862cad6_980x295.png) 然后我們連接好接到`licheepi`的串口,在運行上面的命令查看增了那個串口,那它就是我們的目標串口。 ![](https://img.kancloud.cn/9f/31/9f3195ad49a9856b6516beb4f1cc9d15_979x337.png) 然后我們把文件中的串口和波特率修改成我們需要的后執行腳本即可。 ![](https://img.kancloud.cn/c9/5e/c95e33b7e9d90e296c50d33db71ca361_947x493.png) ![](https://img.kancloud.cn/84/3d/843d7476020f7868a101f97738e69d81_1272x853.png) **當然這只是一個基本的數據傳輸的,是不能夠在腳本中使用vim命令的,否則顯示會亂糟糟的。** [源碼下載](https://gitee.com/yuan_hp/mtty.git)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看