夏培肃 造计算机第一代
李国杰 黄令仪
胡伟武
刘阳
底层 应用层 APP
金庸:内练一口气 外练筋骨皮
内功 外功
操作系统 BIOS 3w
操作系统原理 计算机原理
STM32
100
30 70
上午:上课时间 9:00 ~10:30 11:00~ 12:00
下午: 上课时间 2:00 ~3:30 4:00 ~ 5:00
ARM: A R M
STM32 CORTEX-A53
M: 应用于嵌入式工控领域,以单片机的价格实现32bit的性能
A:应用在高大上的领域, 性能强悍。音视频的处理,AI。
R:应用在实时性较强的领域。
物联网 IoT 嵌入式 of
嵌入式开发模式:
编辑 在PC机上编辑程序
交叉编译
编译结果放在开发板上执行
HOST ----> TARGET
usb
RS232
Network
嵌入式开发的难度:
1. C语言基本功
2. 嵌入式环境的搭建
3. 软硬件相结合的:
a) 能够看懂电路原理图
b) 读懂数据手册(英文)
c) 接口 GPIO IIC UART SPI USB.....
1 编写头文件
头文件卫士 ---》 防止文件的重复包含
#ifndef 宏
#define 宏
文件的包含
结构体
函数的声明
变量的声明
宏定义
类型的定义 (结构体 联合 枚举)
#endif
变量 的声明和定义的区别?
变量的声明 ---》 变量作用域的扩充,变量的声明不会分配空间
变量的定义是要为变量分配空间的!内存
int var = 300; //定义
extern int var; //声明
数据类型的定义:
什么是数据类型?
void int char short float double long bool struct union * .....
其实,计算机中没有数据类型,说白了,就是访问内存和这种规则的相关操作!
注意: void 和无类型是两种概念。无类型只关注地址。
指针就是地址,地址就是编号
数组也是一种数据类型 int arr[3];
函数也是一种数据类型 int add (int x, int y);
为数据类型起别名:
1. 声明类型的变量
int count_t;
2. 在第一步的基础上,前边加上typedef,原来的变量或常量就是原来数据类型的别名
typedef int count_t;
3. 使用类型的别名去命名新变量
count_t var; var 是count_t, 是int类型。
int arr_t [3];
arr_t 是常量 int [3] 是类型
typedef int arr_t[3];
arr_t a = {1,2,3}; === int a[3] = {1,2,3};
arr_t b[2]; b 是二维数组
b[0] ----> b[1]
b + 1 ---> 看b的数据类型, 加了12个字节
b[0][0] ---> b[0][1]
b[0] +1 ---> 加了4个字节
char * str_t;
typedef char *str_t;
str_t a,b; ==== char *a,b;
int fun_t (int x, int y);
typedef int fun_t (int x, int y);
fun_t *p;
int (* func_t) (int x, int y);
typdef int (* func_t) (int x, int y);
func_t p; //和上面的p是等价的
struct node {
int data;
struct node next;
struct node *next;
};
参见 百度网盘
4.1 物联网框架
IoT
嵌入式:
嵌入式系统是以应用为中心,以计算机技术为基础,
软硬件可剪裁,适应应用系统对功能,功耗,体积,
成本严格要求的专用计算机系统。
嵌入式是物联网的保障和基座,
物联网是基于嵌入式系统的应用程序的处理和分析。
物联网层次
参见图 物联网层次图
了解芯片 SOC(高端芯片) MCU(单片机芯片),
都可以组成自己的微型计算机
STM32F103RBT6 = CPU + 内存 + 硬盘 + 外设
内存 用来支持运行程序
硬盘 存储烧写的程序
外设 程序员通用外设来操作芯片