其实STM32和ARM的关系就像,C++和QT。刚开始可能因为觉得没有接触过就挺难的,但在坚持一会儿,就不会觉得那么难了。
nblot 是一个无线通信协议,窄带物联网协议
mpu电路
时钟电路, 电源电路, 复位电路, 下载电路
控制器
gpio、uart、spi、pwm、iic、adc、nvic、dma
内存
flash 、ram
可以通过软件控制其输出和输入。stm32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通信,控制以及数据采集的功能。
异步通信:tx,rx的时间线不同步
工作模式:
1、(1)起始位,拉低电平;当接收方检测到点电平波动时, 准备接收数据
2、(5-8)数据位:5-8位,由低到高发送
3、(可有可无)校验位: 奇偶校验,无校验
4、(1/1.5/2)停止位:拉高电平
5、空闲位:数据线必须为高电平
当传输的数据为11是时电位没有发生变化,则根据比特率来判断发送的位数,比如一秒发一位
怎么解决接收、发送时间不同步的问题?
规定:最多一次发送8位,即一个字节
rs232:没有多大改变的通信协议,传输距离短,抗干扰能力弱,全双工
rs485:利用双绞线,通过两根线的电压差来传输数据,所以是半双工
波特率:简单来说就是传输速率,bps(每秒传送的位的数量);
pwm:是一种脉冲宽度调制
通过起始的定时器发出的脉冲经过一级二级分频最终得到想要的频率
分频中自带两个寄存器,一个是计数器,一个是比较器
dma:是一种数据交换机制,不经过cpu 直接将数据存到内存中,减低cpu的负担
推挽输出: 即可以输出高电平也可以输出低电平, 输出能力强
开漏输出:可以快速切换高低电平输出,输出的电平强度取决于上拉电阻
中断: 异常是中断的一种,发出一种信号打断cpu的工作,cpu保存打断的工作,进行 中断函数。
处理速度要快、保护现场、 避免无意义的中断,降低效率
中断源,中断号,中断处理函数,中断控制器、
中断分为外部中断和内部中断
触发方式:高电平触发、低电平触发、上升沿触发、下降沿触发、双边沿触发
总线:通过高低电平传输数据
串行: 一根数据线,排队传输
并行; 多根数据线同时传输
串行和 并行的优缺点
串行传输速率慢
并行传输速率快,但多条数据线传输容易对彼此产生干扰,在实际应用中,串行应用更多
半双工:单根数据线, eg:iic
ADC(模数转换器):
学习方式:通过五向按键来学习ADC的使用。
五向按键,每个方向有自己的电压,需要通过公式计算
测出的数值/0xfff = 该方向的电压值/3300mv
HAL_ADC_GetValue(&hadc);
获取电压通过将ADC(模数转换器)将电信号转化为数字信号来实现
spi一种全双工的同步通信协议
有mosi(si,sdi),miso(so,sdo),时间线,时钟极限、时钟相位
四条线:mosi/miso/lck(lsck)/cs(片选线)
mosi:主机输出,从机输入
miso:主机输入,从机输出
时钟总线:主机提供
时钟极限(CPOL):表示时钟线空闲时的的电平
时钟相位(CPHA):当边沿采样时,如果CPHA= 1,表示电平在下降
CPHA= 0,表示电平在上升
如果主机想读取从机的数据,必须要先发送空字节给从机,从机才能发送数据给主机
PS:全文是笔者的周记,若果不够严谨或者有什么错误,欢迎讨论.