日韩欧美亚洲一区SWAG

  • <dd id="kgqm6"></dd>
  • <menu id="kgqm6"><tr id="kgqm6"></tr></menu>
  • 電子發燒友網 > 嵌入式技術 > 正文

    Arduino在嵌入式開發中應用案例之arduino點亮LED

    2020年11月26日 17:39 ? 次閱讀

    你了解什么是Arduino嗎?你知道Arduino能做些什么嗎?今天就讓我們來認識一下Arduino!

    Arduino是一款便捷靈活、方便上手的開源電子原型平臺。

    包含硬件(各種型號的Arduino板)和軟件(ArduinoIDE)。由一個歐洲開發團隊于2005年冬季開發。其成員包括MassimoBanzi、DavidCuarTIelles、TomIgoe、GianlucaMarTIno、DavidMellis和NicholasZambetTI等。

    本分享一個通過arduino點亮LED的案例。

    需要的工具

    硬件設備

    • ArduinoUno開發板

    • 臺式機

    • Arduino到臺式機連接線

    軟件

    • AtmelStudio

      • 安裝AtmelStudio,里面會有atmel的編譯器,還會安裝PC端的virtualcommportdriver用來打印信息到TeraTerm

      • 當然也可以下載一個ArduinoIDE,ArduinoIDE可以快速地對Arduino進行編程,但我比較習慣用AtmelStudio。

    • AvrDude

      • 這個軟件可以通過串口下載代碼到Arduino

    • 串口通信軟件,putty或者TeraTerm

    • 代碼編輯軟件,Atom或者其他任何可以編輯文本的軟件

    文檔

    • Arduino的CPUAtmel328P的芯片手冊,下載鏈接。

    開啟Arduino之旅

    項目介紹

    這個小項目主要是帶大家入門嵌入式開發領域。

    • 點亮自己的LED小燈

    • 通過串口進行debug

    • 寫一個簡單的commandlineinterface用來和板子通信

    初識Arduino硬件

    我們的核心是ArduinoUno開發板,下面這張圖是Arduino的電路圖。我把它的幾個大塊標記出來,下面我一一來說明下。

    • VoltageRegulator:它的任務是為系統提供穩定的3.3V和5V的電壓。在藍色區域有兩個voltageregulator,一個是LP2985,輸入5V,輸出3.3V;一個是NCP1117,輸入最高20V,輸出5V。Arduino的供電有兩種,一種是USB供電,這時候只從藍色區域左下角的USBVCC為板子提供5V電壓,然后通過一個regulator為板子提供3.3V電壓。另一種供電是通過供電插口(在板子上USB插口的下方有個圓形的黑色電源插口),這個供電插口是藍色區域中靠中間的長方形區域,它的電壓可以最高到20V,然后通過NCP1117變成5V電壓,然后再通過LP2985變成3.3V電壓。這里面有個值得注意的地方是藍色區域的USBVCC出來后連接了一個三極管,三極管上面有個比較器,比較器的正向輸入端連接了一個分壓電路,反向輸入端連接著3.3V。它的目的是如果從供電插口輸入的電壓不足5V,那就用USB的5V電壓,否則就用供電插口的5V電壓。

    • USBControlchip:USB的控制芯片,買回來的Arduino中這個芯片的固件都是已經在里面的,它的作用是把USB接口的東西轉成串行通信數據(在電路圖紅色的SerialComm部分)發送給CPU,還用把CPU從串行通信發出來的東西,傳換成USB信號發送給PC機。

    • MainCPU:主CPU是Atmel328P。8-bitCPU,因為Arduino沒有外接的serialflash或者外接的SDRAM,所以根據芯片手冊,一共有32KB芯片上的programmingflash,編譯的代碼可以放在這個flash里面。有2KB的SRAM,一些寄存器的信息,stack和heap,全局變量等都放在RAM里。

    • Crystal:16MHz的晶振

    • LED:LED的輸入標記是SCK,對應連接的是atmel328P上的B5管腳。LED連接了一個放大器,目的是電流不通過放大器,只是通過電壓來控制LED,這樣的話B5管腳可以做其他用途。

    • SerialComm:串口通信端口,在CPU上通過usart給PC端發送數據。

    點亮ArduinoLED小燈

    創建項目

    • 選擇File->Project->GCCexecutableproject

      • 輸入項目名稱,之后的芯片請選擇atmel328p

    • 然后需要配置avrdude,選擇tool->externaltool開始配置avrdude

      • TItle:avrdudeprogrammer

      • Command:C:avrdudeavrdude.exe請填寫到avrdude的路徑。

      • Arguments:-F-V-carduino-pATMEGA328P-PCOM6-b115200-Uflash:w:"$(ProjectDir)Debug$(ItemFileName).hex":i里面的COM6請從devicemanager中找出當前的commport.

    點亮LED燈

    • 點亮LED燈,需要配置PB5GPIO寄存器。通過Atmel328p的datasheet和Arduino的電路圖,輸出高電平使LED亮,輸出低電平使LED滅。

    DDRB|=(1<< PB5);//配置PB5的datadirecTIonregisterPORTB|=(1<< PB5);//使PB5輸出高電平PORTB&=~(1<< PB5);//使PB5輸出低電平

    串口通信

    • 當能夠控制LED的開關,這時候可以說明編譯器和Avrdude的代碼下載也沒問題。這時候為了我們更好地debug程序,我們需要讓串口通信正常工作,這樣可以把信息打印到PC端。

    • 根據Arduino電路圖,我們需要讓紅色區域的serialcomm正常工作。USBcontrollerchip可以把數據從USB端口輸出到PC端。

    • 在atmel328P的datasheet,section24。有詳細的USART的描述,對于USART來說,首先肯定是要配置波特率了,然后需要配置USART的一些傳輸模式,比如一次發8bit或者一次發7bit,有沒有stopbit等等。

      • 要注意的是datasheet里面給出了如何把波特率計算成寄存器需要的值,計算公式和板子的晶振頻率有關。具體在數據手冊第227頁。

    • 在傳輸過程,就是不斷的把想要發送的數據寫到寄存器里,然后Atmel328P會通過兩個pin發送到USBcontrollerchip,然后USBcontrollerchip再發送給PC端。

    //配置USARTUBRR0H=(uint8_t)(BAUDRATE_9600_UBRR>>8);//配置波特率UBRR0L=(uint8_t)BAUDRATE_9600_UBRR;UCSR0B=(1<1<1<< RXCIE0);   //enable接收和發送數據UCSR0C=(3<//配置發送模式,8bit數據1bitstopbit
    //發送數據voidUSART_Transmit(uint8_t*Data,uint16_tLength){uint16_ti;for(i=0;i< Length; i++)
      {
        /*Waitforemptytransmitbuffer*/while(!(UCSR0A&(1</*Putdataintobuffer,sendsthedata*/UDR0=Data[i];}}
    //接收數據,使用中斷接收數據ISR(USART_RX_vect){uint8_tReceivedData;ReceivedData=UDR0;}

    CommandLineInterface

    • 當確定Arduino和PC端可以正常通信,我們就可以開始寫commandlineinterface。顧名思義,是通過PC端輸入指令,Arduino做相應的動作。一般大部分的電子產品都有自己的cli用來和產品通信,很多情況如果要開發新的功能,就增加一條新的command,然后PC端的driver可以發送這個新的command給嵌入式設備,這樣它就可以執行新的功能了。

    • commandlineinterface源碼,里面可以輸入指令使Arduino的LED開啟或者關閉。

    • 在commandlineinterface的實現過程中,有些蠻有趣的地方。

      • 我用了一個circularbuffer來實現數據的接收和處理,有一個readindex和一個writeindex,使用buffer的目的就在于用戶輸入命令的速度要和計算機處理的速度不同,所以我們需要一個buffer來平衡它們。比如計算機要處理某個命令需要很久,而用戶在這個命令后又連續輸入了好幾個其他的命令,所有其他的命令都會放到這個circularbuffer然后依次處理。

      • 這個小project使用了這個volatile來定義一個變量,USART_StartCmdProcess,用來記錄當前在receivebuffer中有多少個命令。原因是我們是在中斷中把這個變量自加1,當編譯器編譯這段代碼的時候,如果沒有volatile的話,編譯器并不知道什么時候這個變量什么時候會加1,因為中斷在任何時候都可能發生。因此在主函數里面有if(變量>0),這個判斷會被編譯器認為永遠不會發生(編譯器將這個判斷為永遠false)。所以加了volatile就強制編譯器在編譯去真正判斷地判斷變量的值,簡單地說是不會優化主函數里面地if(變量>0)。

    • 輸入GetLedStatus,Arduino返回LEDOFF

    • 輸入SetLedON,Arduino點亮LED

    • 輸入GetLedStatus,Arduino返回LEDON

    • 輸入SetLedOFF,Arduino關閉LED


    原文標題:Arduino在嵌入式開發中的應用舉例

    文章出處:【微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。


    下載發燒友APP

    打造屬于您的人脈電子圈

    關注電子發燒友微信

    有趣有料的資訊及技術干貨

    關注發燒友課堂

    鎖定最新課程活動及技術直播

    電子發燒友觀察

    一線報道 · 深度觀察 · 最新資訊
    收藏 人收藏
    分享:

    評論

    相關推薦

    《嵌入式技術 基礎課程》之逆向-X86匯編

    我們將《嵌入式工程師-系列課程》分成兩大階段:第一階段:《計算機體系結構》課程   分成4篇:分別是
    發燒友學院發表于 2019-01-21 00:00? 1638次閱讀
    《嵌入式技術 基礎課程》之逆向-X86匯編

    開源3D圖形工具新版本:引入大量新功能和改進

    對于近日發布的 Blender 2.91 新版本(開源3D圖形工具在今年發布的第四個重大版本更新) ....
    發表于 2020-11-27 17:46? 56次閱讀
    開源3D圖形工具新版本:引入大量新功能和改進

    國星Mini LED商業化提速 Mini LE...

    近年來,備受市場關注的Mini LED發展迅速,據相關數據顯示,2020年全球小間距LED顯示屏市場....
    發表于 2020-11-27 17:07? 101次閱讀
    國星Mini LED商業化提速  Mini LE...

    全球顯示行業再次站到技術路線的岔路口?

    涌動了近20年的韓流退潮了,顯示面板行業開始迎來了中國時刻。在整體市場量額齊跌的大背景下,率先布局M....
    發表于 2020-11-27 16:59? 147次閱讀
    全球顯示行業再次站到技術路線的岔路口?

    奧拓電子LED顯示屏閃耀??诿捞m國際機場

    奧拓電子LED顯示屏及控制系統因其絕佳的商業顯示效果、軟硬結合的集成式解決方案和高穩定性再次被??诿?...
    發表于 2020-11-27 16:43? 164次閱讀
    奧拓電子LED顯示屏閃耀??诿捞m國際機場

    富士康/華為擬募資5.13億元用于生產基地建設等...

    11月25日,深交所正式受理東莞市凱格精機股份有限公司(以下簡稱“凱格精機”)的創業板IPO申請。
    發表于 2020-11-27 16:26? 170次閱讀
    富士康/華為擬募資5.13億元用于生產基地建設等...

    關于STM32的基本知識

    STM32簡介 STM32是意法半導體生產的基于ARM公司Cortex-M3內核的32位高性能MCU....
    發表于 2020-11-27 16:26? 116次閱讀
    關于STM32的基本知識

    智能照明應用加深,照明市場的需求增加

    【大比特導讀】近年來,隨著物聯網技術的不斷發展,覆蓋廣泛、滲透深入的照明正逐漸成為物聯網的接入點,實....
    發表于 2020-11-27 16:02? 158次閱讀
    智能照明應用加深,照明市場的需求增加

    Micro LED助力全面開啟萬物皆顯示時代

    2020年,新基建無疑是各行各業都在搶的最大風口。今年4月,國家發展和改革委員會明確表示,新基建主要....
    發表于 2020-11-27 15:50? 102次閱讀
    Micro LED助力全面開啟萬物皆顯示時代

    晨日科技的Mini LED固晶錫膏已批量供貨各大...

    疫情前期,LED行業基本停滯,整個產業鏈面臨原材料緊缺問題,客戶訂單無法正常交付,終端需求被抑制。
    發表于 2020-11-27 15:48? 81次閱讀
    晨日科技的Mini LED固晶錫膏已批量供貨各大...

    “小霸王破產風波”給LED屏企的啟示

    最近,小霸王游戲機破產的消息登上熱搜,不少已過而立之年的網友感慨:爺青結??墒亲屑氁豢疵襟w披露的信息....
    發表于 2020-11-27 15:47? 139次閱讀
    “小霸王破產風波”給LED屏企的啟示

    嵌入式開發的核心競爭力有哪些?

    嵌入式開發的核心競爭力有哪些? 嵌入式開發是一種軟硬件結合的知識與技術。相比較其他開發方向,嵌入式開發的核心競...
    發表于 2020-11-27 15:00? 0次閱讀
    嵌入式開發的核心競爭力有哪些?

    lumileds中文叫什么_lumileds與飛...

    Lumileds公司2014年攀升至全球封裝LED制造商的第四位,超過韓國的首爾半導體,排名僅次于日....
    發表于 2020-11-27 14:11? 328次閱讀
    lumileds中文叫什么_lumileds與飛...

    政策助力景觀照明LED化,未來將會完全替代傳統景...

    近年來,國家提倡景觀照明綠色、節能化,LED景觀照明滲透率不斷提高,LED景觀照明產值不斷創新高,雖....
    發表于 2020-11-27 14:11? 147次閱讀
    政策助力景觀照明LED化,未來將會完全替代傳統景...

    Mini LED TV 畫質巔峰:TCL率先實現...

    根據 TCL 官方的消息,在 2020 年第十六屆中國音視頻產業大會上,TCL 實業副總裁、中國區總....
    發表于 2020-11-27 11:25? 187次閱讀
    Mini LED TV 畫質巔峰:TCL率先實現...

    TCL:首家實現Mini LED TV量產的企業

    11月26日,由中國電子視像行業協會舉辦的2020年第十六屆中國音視頻產業大會(AVF)在北京舉行。....
    發表于 2020-11-27 11:17? 199次閱讀
    TCL:首家實現Mini LED TV量產的企業

    TCL將全球首發4個全新系列Mini LED T...

    11 月 26 日消息 根據 TCL 官方的消息,在 2020 年第十六屆中國音視頻產業大會上,TC....
    發表于 2020-11-27 10:30? 139次閱讀
    TCL將全球首發4個全新系列Mini LED T...

    基于嵌入式CPU Smart Core實現機載飛...

    嵌入式系統把計算機直接嵌入到應用系統中,融合了計算機軟件、硬件、通信和半導體技術,是信息技術的終端產....
    發表于 2020-11-27 10:29? 332次閱讀
    基于嵌入式CPU Smart Core實現機載飛...

    機器視覺光源顏色的選擇攻略

    在機器視覺系統中,光源具有非常重要的作用,選擇合適的光源成為決定整個系統成敗的關鍵因素,光源的主要目....
    發表于 2020-11-27 10:21? 80次閱讀
    機器視覺光源顏色的選擇攻略

    嵌入式系統的知識體系和學習誤區

    嵌入式系統的應用范圍可以大概分為兩大類:電子系統的智能化(工業控制、現代農業、家用電器、汽車電子、測....
    發表于 2020-11-27 09:55? 108次閱讀
    嵌入式系統的知識體系和學習誤區

    如何學習單片機

    使用單片機就是理解單片機硬件結構,以及內部資源的應用,在匯編或C語言中學會各種功能的初始化設置,以及實現各種...
    發表于 2020-11-27 09:48? 176次閱讀
    如何學習單片機

    蘋果計劃在明年發布的iPad Pro中采用12....

    11月27日上午消息,關注電子產業鏈消息的媒體DigiTimes近日報道稱,傳聞蘋果將于明年發布的高....
    發表于 2020-11-27 09:33? 187次閱讀
    蘋果計劃在明年發布的iPad Pro中采用12....

    arduino中級教程分享arduino入門教程

    arduino中級教程
    發表于 2020-11-26 21:51? 0次閱讀
    arduino中級教程分享arduino入門教程

    利亞德為嫦娥五號的飛行任務提供LED顯示系統

    11月24日4時30分,在文昌航天發射場,搭載長征五號遙五運載火箭成功將嫦娥五號探測器送入預定軌道,....
    發表于 2020-11-26 17:26? 119次閱讀
    利亞德為嫦娥五號的飛行任務提供LED顯示系統

    三星已調整明年家電產品導入UV LED的計劃

    據韓媒報道,三星電子調整了明年家電新產品導入UV LED的計劃,削減了明年應用UV LED技術的家電....
    發表于 2020-11-26 17:23? 341次閱讀
    三星已調整明年家電產品導入UV LED的計劃

    LED燈桿屏怎么演繹出機器設備的智慧

    一直以來,智慧更多的是用來形容具有生命物體的綜合能力,機器設備很少被賦予智慧贊譽,但隨著技術越來越發....
    發表于 2020-11-26 17:09? 106次閱讀
    LED燈桿屏怎么演繹出機器設備的智慧

    晶臺股份在Micro LED領域的重要突破

    公開資料顯示,2017年到2019年,晶臺股份研發投入分別占總營收的3.56%、4.19%和4.28....
    發表于 2020-11-26 16:18? 105次閱讀
    晶臺股份在Micro LED領域的重要突破

    超800+位LED產業鏈企業嘉賓將相聚深圳,復盤...

    十二年來,高工LED用研究報告測量行業變化的溫度,用雜志、網站、微信傳遞行業信息,用會議搭建行業間的....
    發表于 2020-11-26 16:14? 178次閱讀
    超800+位LED產業鏈企業嘉賓將相聚深圳,復盤...

    迷你特雷門琴電路連接圖及源程序

      1、將手靠近超聲波傳感器,來回移動手與超聲波傳感器的距離,迷你特雷門琴會隨著手與距離的遠近演奏出不同頻率的聲...
    發表于 2020-11-26 16:13? 0次閱讀
    迷你特雷門琴電路連接圖及源程序

    30種EMC標準電路圖

    01 AC24V接口EMC設計標準電路 02 AC110V-220VEMC設計標準電路 03 AC3....
    發表于 2020-11-26 15:41? 255次閱讀
    30種EMC標準電路圖

    嵌入式Linux系統CPU控制常見辦法測試

    01 測試環境 Xilinx ZCU106 單板 Xilinx VCU TRD2020.1 02 介....
    發表于 2020-11-26 14:17? 834次閱讀
    嵌入式Linux系統CPU控制常見辦法測試

    華為鯤鵬計算從芯片開放到鯤鵬全棧能力開放

    在今天舉行的“2020綠色計算產業峰會”上,華為鯤鵬計算業務總裁張熙偉表示:我們已經奠定鯤鵬產業格局....
    發表于 2020-11-26 11:40? 297次閱讀
    華為鯤鵬計算從芯片開放到鯤鵬全棧能力開放

    微軟開源的 AI 工具介紹-Bringing-O...

    寫在前面 在 GitHub 熱點趨勢Vol.046 中,HG 介紹過一個微軟開源的 AI 工具Bri....
    發表于 2020-11-25 17:48? 364次閱讀
    微軟開源的 AI 工具介紹-Bringing-O...

    【參賽開源資料】電磁炮電路圖設計資料

    電磁主電源部分電路圖,控制部分都一樣的,每一節MOS管放電即可,主是距離和光電開關之間距離的參數 。利用電磁力量...
    發表于 2020-11-25 15:59? 261次閱讀
    【參賽開源資料】電磁炮電路圖設計資料

    第五屆前海灣照明工程獎于2020年11月16日正...

    前海灣照明工程獎是為推動國內外照明領域的文創設計理念、藝術視覺品質、產品工程質量創新而設立的專業性獎....
    發表于 2020-11-25 15:12? 138次閱讀
    第五屆前海灣照明工程獎于2020年11月16日正...

    星光寶將攜重磅產品亮相高工LED年會

    2020年12月14日-15日,由兆元光電總冠名的以顯示左右逢源,照明四處尋機為主題的2020高工L....
    發表于 2020-11-25 14:59? 151次閱讀
    星光寶將攜重磅產品亮相高工LED年會

    關于UVC LED殺菌技術的問題你了解多少

    2020年以來,市場對消毒產品的需求直線上漲,歐司朗光電半導體也因此推出了不少新型的消毒產品,其中U....
    發表于 2020-11-25 14:56? 143次閱讀
    關于UVC LED殺菌技術的問題你了解多少

    蘋果新iPad Pro將升級成OLED屏幕?

    今年上半年,蘋果直接在官網上線了 iPad Pro(第四代)。 到底有多強,我相信大家心里都有數。 ....
    發表于 2020-11-25 14:53? 210次閱讀
    蘋果新iPad Pro將升級成OLED屏幕?

    乾照、晨豐、萊爾新材等led相關企業募資加速

    乾照光電擬募資15億元 乾照光電擬募集資金總額不超過15億元(含),用于Mini/Micro、高光效....
    發表于 2020-11-25 14:34? 148次閱讀
    乾照、晨豐、萊爾新材等led相關企業募資加速

    新益昌:LED封裝設備國產替代化、國際化

    LED封裝作為產業鏈中的關鍵一環,隨著產業的整體發展,中國已經發展為全球最大的LED封裝基地。 根據....
    發表于 2020-11-25 14:19? 237次閱讀
    新益昌:LED封裝設備國產替代化、國際化

    研究人員利用廉價的LED和染料創造了一種光纖傳感...

    早期的可拉伸傳感器技術出現于2016年,使用通過光波導和光電二極管發送的光來檢測光束強度的變化,以確....
    發表于 2020-11-25 14:16? 230次閱讀
    研究人員利用廉價的LED和染料創造了一種光纖傳感...

    億光Q3業績創2018年第三季以來新高紀錄

    進入11月中旬,LED臺廠三季度報披露潮告一段落。其中,從億光所披露的三季度財報數據來看,其轉型進展....
    發表于 2020-11-25 14:15? 133次閱讀
    億光Q3業績創2018年第三季以來新高紀錄

    三星電子投資400億韓元建Mini LED電視生...

    據媒體報道,三星電子將投資400億韓元(約合人民幣2.35億元)在越南建設50條Mini LED電視....
    發表于 2020-11-25 14:05? 384次閱讀
    三星電子投資400億韓元建Mini LED電視生...

    多家廠商開始將Mini LED推向車用市場

    MiniLED應用正隨著下半年LED顯示和消費電子市場的強勁復蘇而加速,不管是在電視、電競屏亦或是大....
    發表于 2020-11-25 13:58? 222次閱讀
    多家廠商開始將Mini LED推向車用市場

    華燦光電Mini LED芯片產品在各細分市場占有...

    京東方全球創新伙伴大會·2020(BOE IPC·2020)在北京盛大開幕,華燦光電作為京東方戰略合....
    發表于 2020-11-25 13:53? 261次閱讀
    華燦光電Mini LED芯片產品在各細分市場占有...

    STM32F1和STM32F4 的區別

    u F1采用Crotex M3內核,F4采用Crotex M4內核。 u F1最高主頻 72MHz, F4最高主頻168MHz。 u F4具有單...
    發表于 2020-11-25 09:42? 202次閱讀
    STM32F1和STM32F4 的區別

    嵌入式實時操作系統如何簡化應用軟件的設計

    在嵌入式領域中,嵌入式實時操作系統()正得到越來越廣泛的應用。采用嵌入式實時操作系統可以更合理、更有效地利用的...
    發表于 2020-11-25 06:48? 0次閱讀
    嵌入式實時操作系統如何簡化應用軟件的設計

    技術賦能—聚焦高端工控MCU/MPU/SoC國產芯發展

    本周五晚 8點!免費直播邀你一起來參與!——極海半導體有限公司市場產品總監和你一起探討國產芯發展趨勢 立即報...
    發表于 2020-11-24 18:11? 202次閱讀
    技術賦能—聚焦高端工控MCU/MPU/SoC國產芯發展

    嵌入式過時了嗎?會不會被淘汰?

    [table] [tr][td]嵌入式過時了嗎?會不會被淘汰? 每一個想學習嵌入式的人肯定都考慮過這個問題。對于很多想入行的...
    發表于 2020-11-24 17:00? 202次閱讀
    嵌入式過時了嗎?會不會被淘汰?

    串口通信無法正常進行

    求助?。?! 如圖,打算在Xilinx SDK中通過串口打印信息,以簡單驗證代碼正確性,但是不知道為什么我明明沒有連接...
    發表于 2020-11-24 10:48? 202次閱讀
    串口通信無法正常進行
    日韩欧美亚洲一区SWAG
  • <dd id="kgqm6"></dd>
  • <menu id="kgqm6"><tr id="kgqm6"></tr></menu>