小樣兒老師:我的嵌入式學習之路(一)

来源:http://www.cnblogs.com/xiaoyangerlaoshi/archive/2016/09/18/5882111.html
-Advertisement-
Play Games

• 微博: 小樣兒老師2015 關於 嚴格來說,本文題目應該是我的單片機、DSP和ARM+Linux學習之路,但這個寫法實在太繞口——況且嵌入式往往暗指MCU,DSP,ARM等微處理器加上嵌入式操作系統,所以我認為本文題目是合理的。 這篇文章講了什麼? • 我這些年學單片機、DSP和ARM+Linu ...


•    微博: 小樣兒老師2015

關於

嚴格來說,本文題目應該是我的單片機、DSP和ARM+Linux學習之路,但這個寫法實在太繞口——況且嵌入式往往暗指MCU,DSP,ARM等微處理器加上嵌入式操作系統,所以我認為本文題目是合理的。

這篇文章講了什麼?

•    我這些年學單片機、DSP和ARM+Linux的總結。

•    一些不錯的書籍和教程。

初學

第一次接觸單片機是在大一下學期,當時和一同學腦洞大開要做一個世界上最輕的可摺疊便攜電動車——摺疊好放在包里扛著就走的那種,靠著扯犢子的本事通過了學校的創新創業項目立項,還給撥了經費,分了實驗室,實驗室的指導老師讓學習51單片機,由於當時正忙著給淘寶開放平臺開發一個給淘寶賣家使用的平臺軟體,天天抱著一堆PHP開發的書再看,老師的話被傻逼的我扔在了一邊。

直到後來電動車項目要開始動手——而且經過前一段時間的折騰證明瞭我以後還得靠嵌入式混飯吃,恍然發現我對於它的瞭解幾乎為零,於是我給自己制定了一個類似於建國初期五年計劃的讀書學習計劃,向當時我認為很牛的學長和大神請教,選擇了一些靠譜的書籍和教程

新概念51單片機C語言教程

 

 

新概念51單片機C語言教程是我學習單片機的第一本書,從網上找了十天學會51單片機的視頻,懷著激動的心情開始了學習,看了一周發現完全沒有效果,並且書里一直在講一定要有硬體平臺進行練習,要親自動手去做,花了100多塊大洋買了和視頻書籍配套的學習板,開始把書中講解的代碼依次敲了一邊,編譯調試無錯誤,下載進學習板看現象,不理解的地方就反覆研讀,有錯誤就反覆調試,上網找解決辦法,後來證明很多錯誤都是不細心造成的輸入錯誤。通過這本書和配套視頻的學習,單片機總算是入了門。

新編MCS-51單片機應用設計

 

 

新編MCS-51單片機應用設計是用彙編寫的一本書,可以當做工具書來用,查詢配置51單片機常用的一些寄存器。通俗點說它用更易於初學者理解的語言講解了51單片機的數據手冊。曾經有人問我學單片機有沒有必要學彙編,我的答案是完全沒必要,C語言就夠了,現在技術的發展已經有支持高級語言C++開發的編譯器了,並且使用彙編開發的效率極低,可移植性差。

單片機典型模塊設計實例導航

 

如果說新概念51單片機C語言教程是用於入門的書籍,那單片機典型模塊設計實例導航可作為單片機進階的書籍來看,書中的很多實例可以拿來直接使用於項目中。並且此書還提供源碼供參考,提高自己的工程應用水平,此書值得一讀。我的電動車項目中用到的一部分源碼就是來源於此。

  藉助這個讀書學習成長計劃,我出色的完成了創新項目,作品被學校買走收藏,並且被系主任邀請進入他的創新實驗室,當然這是後話。

編程語言的學習

嵌入式的學習是以C語言為核心的,無論是裸機程式,驅動程式,還是嵌入式操作系統,都是使用C語言進行的開發,少數涉及到使用C++,深厚的C語言功底是學習嵌入式必不可少的。

8051系列單片機C程式設計完全手冊

用於嵌入式開發的C語言跟通常使用的C語言還是有一點點區別的,但都大同小異8051系列單片機C程式設計完全手冊除了能讓你瞭解用於單片機C語言之外,還講解了所有應用於單片機的庫函數,合理的使用庫函數能提升開發效率。

C和指針

 

C語言的精華所在就是指針,對於C語言初學者,最難得概念不僅僅是指針和數組,還有指向數組的指針和指向指針的指針,C和指針花了大量的篇幅和圖示來把這些難懂的概念講的清清楚楚。

C 陷阱與缺陷

 

 

書如其名,這本書介紹了 C 語言中常見的坑和一些稀奇古怪的編程“技巧”,不少刁鑽的C語言面試題都源自這本小冊子。

C專家編程

 

 

不要被標題中的“專家”嚇到,這實際是一本很輕鬆的書籍,它既包含了大量 C 語言技術細節和編程技巧,也包含了很多有趣的編程軼事。

學習設計PCB

做嵌入式開發,硬體平臺的設計是第一步,學習PCB設計沒有什麼好辦法,看書,然後必須大量練習,畫板,投板,在實踐中去慢慢理解體會,初次接觸做PCB是進入創新實驗室,根據學長留下的視頻教程算是入了門,使用的軟體是Altium Desigder 09,但是視頻教程講解的是DXP2004,Altium Desigder 09是DXP2004的升級版本軟體,視頻作為入門還是足夠用的。我會在下麵放上視頻的連接,可自行下載。

鏈接: https://pan.baidu.com/s/1jInXl5s 密碼: ui2q

 Altium Designer PCB畫板速成

 

Altium Designer PCB畫板速成是由一線的PCB工程師寫的一本書,實踐性極強,可作為PCB設計的進階書籍來使用。

Altium Designer Winter 09電路設計與模擬教程

 

Altium Designer Winter 09電路設計與模擬教程也是一本PCB進階書籍,入了門之後的路就只能靠自己了,常言道師傅領進門,修行在個人。多看書,多實踐。考研覆試時曾吹噓自己懂PCB設計以至於讀研期間導師讓我承包了實驗室大部分PCB設計的工作。

如何看數據手冊Datasheet

學會看晶元手冊是嵌入式工程師必備的技能,不管什麼晶元手冊,英文的還是中文的,都只是使用說明書而已。而說明書一個最顯著的特點就是必須儘可能地使用通俗易懂的語句,向使用者交代清楚該產品的特點、功能以及使用方法。如果是英文手冊,運用在大學里所學到的那些英文知識去分析這些手冊,足矣。

Datasheet閱讀步驟及要領

①先看看晶元的特性(Features)、應用場合(Applications)以及內部框圖。先做一個巨集觀的瞭解,此時需要弄清楚該晶元的一些比較特殊的功能,充分利用晶元的特殊功能,對整體電路的設計,將會有極大的好處。比如AD9945可以實現相關雙採樣(CDS),這可以簡化後續信號調理電路,並且抵抗雜訊的效果還好

②重點關註晶元的參數,同時可以參考手冊給出的一些參數圖(如AD9945的TPC 1,TPC2等),這是我們是否採用該晶元的重要依據。像AD9945,可關註採樣率(maximum clock rate)、數據位數(AD converter)、功耗(Power consumption)、可調增益範圍(gain range)等

③選定器件後,研究晶元管腳定義、推薦的PCB layout,這些都是在硬體設計過程中必須掌握的。所有管腳中,要特別留意控制信號引腳或者特殊信號引腳,這是將來用好該晶元的前提。比如AD9945的SHP、SHD、PBLK、CLPOB等

④認真研讀晶元內部寄存器,對寄存器的理解程度,直接決定了你對該晶元的掌握程度。比如AD9945就有4個寄存器:Operation、Control、Clamp Level和VGA gain,對於這些寄存器,必須清楚它們上電後的初始值、所能實現的功能、每個bit所代表的含義這些基本情況

⑤仔細研究手冊給出的時序圖,這是對晶元進行正確操作的關鍵。單個信號的周期、上升時間、下降時間、建立時間、保持時間,以及信號之間的相位關係,所有這些都必須研究透徹。像AD9945的Figure 8 和Figure 9 就很值得花費時間去仔細研究

特別提示:

凡是晶元數據手冊中的“note”,都必須仔細閱讀,一般這都是能否正確使用、或能否把晶元用好的關鍵之所在。

歸納:

第一:先找個有中文版本手冊的晶元,把中英文對照著看,熟悉英文手冊的描述風格

第二:仔細看看晶元的原理框圖,弄明白他的內部結構,都哪些功能電路,該晶元能實現哪些功能

第三:重點關註晶元的參數,這是你是否選用該晶元的重要參考

第四:選定器件後,看看管腳定義、推薦的PCB layout,這是在作硬體電路設計時必須掌握的

第五:認真研讀晶元內部寄存器,對寄存器的理解程度,直接決定了你對該晶元的掌握程度

(未完待續………..)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 插入無線網卡,輸入ifconfig,發現沒有檢測到網卡。 輸入lsusb,查看無線網卡型號。 我用的無線網卡是EDUP的網卡,包裝盒裡有一張驅動光碟,把光碟里linux下的驅動目錄複製下來。如果沒有驅動光碟,可以去網上下載RTL8188的Linux版驅動包。 提前準備好ARM板系統的交叉編譯器和系統 ...
  • Ubuntu16.04 1.chrome安裝 獲取安裝包http://www.google.cn/chrome/browser/desktop/index.html 在安裝包目錄打開終端執行sudo dpkg -i google-chrome-stable_current_amd64.deb 若有錯 ...
  • 本文主要介紹了在NAS-DSM系統上部署Finereport數據決策系統。 ...
  • 創建基於對話框的Win32應用程式(四)——Edit Control的應用、Unicode轉ANSI、自動滾動 之前的介紹中,我們用到了Button、Static Text、Checkbox這三個控制項。這一節中我們將學習使用Edit Control(編輯框)控制項,其中還包括Unicode轉ANSI的 ...
  • 該方法傳入一個NSString類型的命令字元串,返回運行結果。但是使用這種方法沒法記憶上一次操作,沒法做到像在終端中執行多次命令那樣自如。 例如:先cd到桌面,然後在桌面新建文件夾,在終端中我們是這麼實現的: 使用NSTask調用: ...
  • 現象:公司內網的工作電腦無法建立遠程桌面,當出現這個問題時,排查了下原因,終於得到解決。 原因分析: 1、因為是內網伺服器,所以需要在公網路由器上面進行埠映射(這裡涉及到不同路由器型號已經網路知識,這裡不再贅述),首先排查了公司外網路由器上面所做的 埠映射,在公網使用telnet IP port ...
  • 編譯器,解釋器 編程語言:機器語言、彙編語言、高級語言 靜態語言:編譯型語言 強類型(變數類型):變數在使用前,必須事先聲明,初始化 關鍵字 事先轉換成可執行格式 C,C++,Java,C#, 動態語言:解釋型語言, on the fly 弱類型:變數用時聲明,不區分類型(Python) 邊解釋邊執 ...
  • 介紹 gzip是linux自帶的壓縮文件命令,它的壓縮比大概能達到60%-70%,比zip的壓縮比更高。使用gzip壓縮預設會在文件後加上.gz尾碼並將源文件刪除。gunzip是解壓縮命令。 gzip 1.不指定路徑 gzip filename [root@master backup]# ll to ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...