第1章簡介
1.1一些假設前提
1.2你需要什麼
1.2.1基於Atmel的單片機卡
1.2.2面包板
1.2.3零碎的小件
1.3安裝軟件
1.4檢查硬件
1.4.1連接USB線纜
1.4.2在集成開發環境中選擇mc板
1.4.3端口選擇
1.5載入並運行你的個程序
1.5.1Blink程序
1.5.2運行Blink程序代碼
1.5.3編譯Blink程序代碼
1.5.4上載Blink程序
1.6本章小結
第2章Arduino C
2.1程序語言的通用構件
2.1.1表達式
2.1.2語句
2.1.3語句塊
2.1.4函數塊
2.2程序的5個環節
2.3再來看看Blink程序
2.3.1程序注釋
2.3.2數據定義
2.3.3setup()函數
2.3.4loop()函數
2.4小結
2.5練習
第3章Arduino C數據類型
3.1boolean數據類型
3.2char數據類型
3.2.1二進制數據
3.2.2char數據類型和字符集
3.2.3生成ASCII字符表
3.3byte數據類型
3.4int數據類型
3.5word數據類型
3.6long數據類型
3.7float和double數據類型
3.8string數據類型
3.9String數據類型
3.10void數據類型
3.11array數據類型
3.12變量的定義與聲明
3.12.1符號表
3.12.2lvalue和rvalue
3.12.3 “水桶”比喻
3.13使用強制類型轉換符
3.14小結
3.15練習
第4章C語言的邏輯判斷
4.1關繫運算符
4.2if語句
4.3升級版Blink程序
4.3.1電路
4.3.2程序代碼
4.4升級版Blink程序的修改
4.5if-else表達式
4.6if語句嵌套
4.7自增和自減運算符
4.7.1兩種類型的自增運算符(++)
4.7.2兩種類型的自減運算符(??)
4.7.3運算符的優先級
4.8switch語句
4.9goto語句
4.10拋棄“魔數”
4.11C語言的預處理指令
4.12正面還是反面
4.12.1初始化環節
4.12.2輸入環節
4.12.3處理環節
4.12.4輸出環節
4.12.5結束環節
4.13思考一下
4.14小結
4.15練習
第5章C語言的循環
5.1正常循環的特征
5.1.1條件1:變量初始化
5.1.2條件2:循環控制測試
5.1.3條件3:修改循環控制變量的狀態
5.2使用for循環
5.3while循環
5.4do-while循環
5.5break和continue關鍵字
5.5.1break語句
5.5.2continue語句
5.6一段完整的示例
5.6.1環節1:初始化
5.6.2環節2:輸入
5.6.3環節3:處理
5.6.4環節4:輸出
5.6.5環節5:結束
5.6.6代碼5-1是“傻瓜代碼”
5.7循環和編碼風格
5.8小結
5.9練習
第6章C語言函數
6.1函數剖析
6.1.1函數類型說明符
6.1.2函數名
6.1.3函數參數
6.1.4函數體
6.1.5函數簽名
6.2“優質”函數所具備的條件
6.2.1使用面向任務的函數命名
6.2.2函數應該具有聚合力
6.2.3函數應避免耦合
6.3編寫自己的函數
6.3.1設計函數的考慮因素
6.3.2參數列表
6.3.3函數體
6.4邏輯運算符
6.4.1邏輯與運算符(&&)
6.4.2邏輯或(||)
6.4.3邏輯非(!)
6.5編寫自己的函數
6.5.1IsLeapYear()函數和編碼風格
6.5.2實參(Argument)和形參(Parameter)
6.5.3為什麼要堅持一種函數風格
6.6閏年計算程序
6.7函數中數據的傳入和返回
6.8小結
6.9練習
第7章存儲類型和作用域
7.1隱藏程序數據
7.2語句塊作用域
7.3本地作用域
7.4全局作用域
7.5作用域和存儲類型
7.5.1auto存儲類型
7.5.2register存儲類型
7.5.3static存儲類型
7.5.4extern存儲類型
7.6volatile關鍵字
7.7小結
7.8練習
第8章初識指針
8.1定義一個指針
8.1.1指針名
8.1.2星號
8.1.3指針類型說明符和指針標量
8.2使用指針
8.2.1取值運算符(*)
8.2.2使用取值運算
8.3指針用法小結
8.4指針為什麼有用
8.5指針和數組
8.6小結
8.7練習
第9章高效使用指針
9.1針對指針的關繫判斷
9.2指針運算
9.3二維數組
9.3.1一點小改進
9.3.2幾維
9.4二維數組和指針
9.5函數指針
9.5.1函數指針數組
9.5.2enum數據類型
9.6右左右左規則
9.7小結
9.8練習
第10章結構、聯合和數據存儲
10.1結構
10.1.1聲明結構
10.1.2定義結構
10.1.3訪問結構成員
10.1.4從函數調用返回結構
10.1.5使用結構指針
10.1.6初始化結構
10.1.7結構數組
10.2聯合
10.3EEPROM內存
10.4數據日志
10.5其他存儲選擇
10.5.1 Shield
10.5.2SD卡的其他功能
10.6小結
10.7練習
第11章C預處理和按位操作
11.1預處理指令
11.1.1#undef
11.1.2#line
11.1.3#if條件指令
11.1.4#include
11.2帶參宏
11.2.1按位操作符
11.2.2按位移動操作符
11.2.3使用不同進制的整型常量
11.2.4帶參宏(補充內容)
11.3小結
11.4練習
第12章Arduino庫
12.1庫
12.1.1Arduino庫
12.1.2其他庫
12.2編寫自己的庫
12.2.1庫頭文件
12.2.2庫源代碼文件(Dates.cpp)
12.3設置Arduino IDE以使用自己的庫
12.4使用Dates庫實現的示例程序
12.4.1向IDE添加Easter程序
12.4.2keyword.txt文件
12.4.3關鍵詞顏色(theme.txt)
12.5小結
12.6練習
附錄A供應商和資源
A.1 供應商
A.1.1 Seeedino Studio
A.1.2 Diligent Inc
A.1.3 OSEPP
A.1.4 Tinyos Electronics
A.1.5 Cooking Hacks
A.2 資源
附錄B實驗器件
B.1 開發板
B.2 面包板
B.3件
B.4件
B.5 實驗
練習答案
第2章
第3章
第4章
第5章
第6章
第7章
第8章
第9章
第10章
第11章
第12章