高效微控制器C语言编程
高效微控制器C语言编程
Marc Loy
陈锋, 赵慧 译
出版时间:2025年02月
页数:257
“无论是C语言新手还是物联网开发人员,这本书的读者都能在数小时内为微控制器编写出精简、整洁、高效的C代码。”
——Tony Crawford
C in a Nutshell一书的合著者
“这本书提醒我,如果将编程简化为最基本的操作,它确实可以非常有趣。”
——Alex Faber
软件工程师
对于希望使用最小微控制器或从较大微控制器中获得最高性能的制造商来说,C语言仍然是最佳选择。本书为所有从事微控制器编程的人提供了扎实的C语言基础知识。你将探索C语言让开发人员和制造商从微小设备中获得巨大成果的多种方法。
作者Marc Loy将向你展示如何从零开始编写整洁、可维护的C代码。C和C++仍然广泛用于编写设备驱动程序或操作系统的底层代码。通过了解C语言的语法和特性,你将获得持久的计算机语言素养,这将帮助你更轻松地掌握新语言和新风格。
通过学习本书,你将:
● 学习C语言基础,如数据类型、流程控制和函数。
● 探索内存管理,包括程序如何在小型设备上运行。
● 了解Reddit或Stack Overflow等在线论坛提供的答案。
● 编写既可读又可维护的高效自定义C代码。
● 分析代码的性能并权衡优化措施。
● 评估第三方库,以便在自己的项目中使用它。
● 创建自己的库,并与他人共享。
  1. 前言
  2. 第1章 C语言基础
  3. 1.1 优势和劣势
  4. 1.2 入门
  5. 1.2.1 所需工具
  6. 1.2.2 创建C语言“Hello, World”
  7. 1.2.3 编译代码
  8. 1.2.4 运行代码
  9. 1.3 下一步
  10. 第2章 存储和状态
  11. 2.1 C语言中的语句
  12. 2.1.1 分隔符
  13. 2.1.2 语句流
  14. 2.2 变量和类型
  15. 2.2.1 获取用户输入
  16. 2.2.2 字符串和字符
  17. 2.2.3 数字
  18. 2.2.4 变量名称
  19. 2.2.5 变量赋值
  20. 2.3 printf()和scanf()
  21. 2.3.1 printf()格式
  22. 2.3.2 格式化输出
  23. 2.3.3 scanf()和输入解析
  24. 2.4 运算符和表达式
  25. 2.4.1 算术运算符
  26. 2.4.2 执行顺序
  27. 2.4.3 类型转换
  28. 2.5 下一步
  29. 第3章 控制流
  30. 3.1 布尔值
  31. 3.1.1 比较运算符
  32. 3.1.2 逻辑运算符
  33. 3.2 分支
  34. 3.2.1 if语句
  35. 3.2.2 switch语句
  36. 3.3 三元运算符和条件赋值
  37. 3.4 循环语句
  38. 3.4.1 for语句
  39. 3.4.2 while语句
  40. 3.4.3 do/while变式
  41. 3.5 嵌套
  42. 3.5.1 嵌套循环和表格
  43. 3.5.2 变量作用域
  44. 3.6 练习
  45. 3.7 下一步
  46. 第4章 位和(许多)字节
  47. 4.1 用数组存储多个元素
  48. 4.1.1 创建和操作数组
  49. 4.1.2 回顾字符串
  50. 4.1.3 多维数组
  51. 4.1.4 访问多维数组中的元素
  52. 4.2 存储位
  53. 4.2.1 二进制、八进制、十六进制
  54. 4.2.2 C语言中的八进制和十六进制字面量
  55. 4.2.3 八进制和十六进制数值的输入与输出
  56. 4.2.4 位运算符
  57. 4.3 混合位和字节
  58. 4.4 转换答案
  59. 4.5 下一步
  60. 第5章 函数
  61. 5.1 熟悉的函数
  62. 5.2 函数流
  63. 5.3 简单函数
  64. 5.4 向函数发送信息
  65. 5.4.1 传递简单类型
  66. 5.4.2 将字符串传递给函数
  67. 5.4.3 多种类型
  68. 5.4.4 从函数退出
  69. 5.5 返回信息
  70. 5.5.1 使用返回值
  71. 5.5.2 忽略返回值
  72. 5.6 嵌套调用和递归
  73. 5.7 变量作用域
  74. 5.8 main()函数
  75. 5.8.1 返回值和main()
  76. 5.8.2 命令行参数和main()
  77. 5.9 下一步
  78. 第6章 指针和引用
  79. 6.1 C语言中的地址
  80. 6.1.1 NULL值和指针错误
  81. 6.1.2 数组
  82. 6.1.3 局部变量和栈
  83. 6.1.4 全局变量和堆
  84. 6.2 指针算术
  85. 6.3 数组指针
  86. 6.4 函数和指针
  87. 6.5 用数组管理内存
  88. 6.5.1 使用malloc()分配内存
  89. 6.5.2 使用free()释放内存
  90. 6.6 C结构体
  91. 6.6.1 定义结构体
  92. 6.6.2 分配和访问结构体成员
  93. 6.6.3 结构体指针
  94. 6.6.4 函数和结构体
  95. 6.7 指针语法回顾
  96. 6.8 下一步
  97. 第7章 库
  98. 7.1 C标准库
  99. 7.1.1 stdio.h
  100. 7.1.2 stdlib.h
  101. 7.1.3 string.h
  102. 7.1.4 math.h
  103. 7.1.5 time.h
  104. 7.1.6 ctype.h
  105. 7.2 组合起来
  106. 7.2.1 填充字符串
  107. 7.2.2 寻找我们的兴趣所向
  108. 7.3 寻找新的库
  109. 7.4 下一步
  110. 第8章 在Arduino中的C语言
  111. 8.1 Arduino IDE(Windows、macOS、Linux)
  112. 8.1.1 在Windows上安装
  113. 8.1.2 在macOS上安装
  114. 8.1.3 在Linux上安装
  115. 8.2 你的第一个Arduino项目
  116. 8.2.1 选择板子
  117. 8.2.2 LED
  118. 8.2.3 外部LED升级
  119. 8.3 Arduino库
  120. 8.3.1 管理库
  121. 8.3.2 使用Arduino库
  122. 8.4 Arduino草图和C++
  123. 8.4.1 C++对象和变量
  124. 8.4.2 更多关于对象的实践
  125. 8.4.3 C++注意事项
  126. 8.4.4 操作对象的作业
  127. 8.5 下一步
  128. 第9章 小型系统
  129. 9.1 Arduino环境
  130. 9.1.1 特有命名值
  131. 9.1.2 特殊类型
  132. 9.1.3 “内置”函数
  133. 9.1.4 试用Arduino的这些特性
  134. 9.2 微控制器输入/输出
  135. 9.2.1 传感器和模拟输入
  136. 9.2.2 串行监视器
  137. 9.2.3 这里热吗
  138. 9.2.4 分段式数码管
  139. 9.2.5 按钮和数字输入
  140. 9.2.6 到底有多热
  141. 9.3 Arduino的内存管理
  142. 9.3.1 闪存(PROGMEM)
  143. 9.3.2 SRAM
  144. 9.3.3 EEPROM
  145. 9.3.4 保存选择
  146. 9.4 中断
  147. 9.4.1 中断服务例程
  148. 9.4.2 中断驱动编程
  149. 9.5 练习
  150. 9.6 下一步
  151. 第10章 更快的代码
  152. 10.1 配置
  153. 10.2 浮点数与整数计算
  154. 10.2.1 浮点计算替代方案
  155. 10.2.2 整数计算与无计算
  156. 10.2.3 查找表
  157. 10.2.4 更近一步
  158. 10.3 2 的幂的幂
  159. 10.4 循环优化
  160. 10.4.1 展开循环,快乐且高效
  161. 10.4.2 递归与迭代
  162. 10.5 字符串与字符数组
  163. 10.6 我们的最终方案
  164. 10.7 下一步
  165. 第11章 自定义库
  166. 11.1 创建自己的库
  167. 11.1.1 预处理器指令
  168. 11.1.2 预处理器宏
  169. 11.1.3 自定义类型定义
  170. 11.1.4 我们的小车项目
  171. 11.2 多文件项目
  172. 11.2.1 代码(.ino)文件
  173. 11.2.2 头文件
  174. 11.3 导入自定义库
  175. 11.3.1 通信支持
  176. 11.3.2 改装我们的小车
  177. 11.3.3 创建控制器
  178. 11.3.4 创建库
  179. 11.3.5 更新小车项目
  180. 11.3.6 控制它
  181. 11.3.7 开车吧
  182. 11.3.8 文档和分发
  183. 11.4 下一步
  184. 第12章 更进一步
  185. 12.1 中高级课题
  186. 12.1.1 物联网和Arduino
  187. 12.1.2 Arduino源代码
  188. 12.2 其他微控制器
  189. 12.3 C/C++的行业生态
  190. 12.4 未来展望
  191. 附录A 硬件和软件
  192. 附录B printf()格式指定符详情
书名:高效微控制器C语言编程
作者:Marc Loy
译者:陈锋, 赵慧 译
国内出版社:机械工业出版社
出版时间:2025年02月
页数:257
书号:978-7-111-76998-9
原版书书名:Smaller C: Lean Code for Small Machines
原版书出版商:O'Reilly Media
Marc Loy
 
Marc Loy是Galileo Systems, LLC的高级程序员,但他主要为各种公司(包括Sun Microsystems)教授Java和Perl课程。他早在Java的alpha阶段就开始使用它。除了教课之外,他还为很多公司开发各种规模的Java应用程序。他从Wisconsin大学Madison分校获得了计算机科学硕士学位,现在仍同妻子Ron Becher住在Madison。

Marc Loy曾在Sun Microsystems开发软件,并提供有关Java、Unix和网络方面的培训课程,向广大受众传授知识。从那以后,他一直在为更多的人提供培训。如今,他主要从事技术和媒体方面的咨询和写作。他还对创客产生了浓厚兴趣,并正在探索嵌入式电子和可穿戴设备领域。
 
 
本书封面上的动物是大西洋野生金丝雀(Atantic wild canary,学名Serinus canaria)。这种鸟也被称为岛屿金丝雀或普通金丝崔,分布在加那利群岛(Canary Islands,以这些鸟命名)、亚速尔群岛和马德拉群岛等地。
大西洋野生金丝雀的身长为9.9~11.9厘米,平均体重约为142克。在野外,它们通常呈黄绿色,背部有褐色条纹,但人工饲养的大西洋金丝崔也有许多不同颜色的品种。雄性和雌性金丝雀的颜色相似,但雌性的羽毛颜色更偏灰。大西洋野生金丝雀的幼鸟通常为褐色。
虽然大西洋野生金丝崔通常栖息在遍布小树的开阔地带,但它们在各种栖息地中都有出现,包括公园和花园等人工栖息地。这种社交性的鸟会成群觅食,通常在树枝的末端或分叉处附近建造杯状巢。由于它们分布广泛(且不断增长),因此其保护级别为无危物种。O'Reilly封面上的许多动物都处于濒危状态,它们对世界都很重要。
购买选项
定价:99.00元
书号:978-7-111-76998-9
出版社:机械工业出版社