PWM
PWM指的是脉冲宽度的控制,是一种利用微处理器的数字输出能力来控制模拟电路技术
PWM有两个关键参数一个是占空比 和 频率 频率指的是STM32的定时器通道的脉冲次数 占空比指的是一个周期内高电平所占的比例
PWM一般是用在工业控制领域
在这里可以看到PF9引脚和TIM14是相关联的所以就需要把PF9引脚改设置成复用模式 复用为定时器功能
PWM使用流程
第一步打开GPIO引脚时钟 和定时器时钟
第二步配置GPIO的引脚(引脚模式需要设置为复用模式) 初始化GPIO
第三步 把GPIO的引脚复用为对应的定时器
第四步配置定时器的定时时间(预分频器+自动重载值) + 初始化TIM
第五步配置定时器通道的参数(输出极性高 PWM模式) + 初始化定时器通道
第六步使能定时器的预装载值
第七步使能自动重装载值寄存器的ARPE位
第八步使能定时器 调用TIM_Cmd()
注意:PWM技术使用的是定时器通道的输出比较功能,所以不需要配置NVIC,也不需要编写中断服务函数。
串口通信
通信指的是CPU与外部设备之间的数据交互
通信种类
处理器与外部设备通信方式有两种 串行通信 和 并行通信
串行通信
传输原理:数据按位顺序依次传输(每一位都占固定的时间长度)
优点:节约引脚资源(最少一根线),传输成本低 ,传输距离远
缺点:传输速度慢
应用领域:一般作为工业设备 测量设备
并行通信
传输原理:数据各个位同时进行传输(以字节或者字节的倍数进行传输)
优点:传输速度块
缺点:占用引脚资源 传输成本高 传输距离近 抗干扰能力弱(串干扰)
应用领域:一般大量数据传输 并且传输较近 如计算机总线
串行通信的分类
如果按照数据的传送方向 则可以分为三种
单工 :数据只允许在一个方向上传输 如收音机
半双工:数据允许在两个方向上传输 但是同一时刻只允许在一个方向传输
全双工:数据允许同时在两个方向上传输 可以理解位两个单工
同步通信
带有时钟同步信号 如IIC和SPI都属于同步通信 要求双方都必须在同一时钟上 相当于发送数据的同时接收数据 同步通信属于连续串行传输数据 一次只传输一帧数据相比于异步通信效率会更高 缺点时钟必须要一致
异步通信
不带时钟同步信号 如USART接口属于异步通信 要求通信双方具有发送端和接收端 由于不要求时钟同步 所以在通信的时候,通信双方必须提前约定好通信格式(字符格式)以及同时速率 异步通信以字符位单位进行传输 在传输一个字符的时候添加起始位和停止位 通过起始位以及停止来达到同步的功能
串口的意义
串口是把数据按位顺序传输 但是计算机在通信的时候采用并行的通信方式 在硬件设备与计算机进行通信的时候涉及到 串转并 并转串 他们实现方式有两种 硬件实现+软件实现 如果采用软件实现则会增加CPU的负担 一般采用硬件实现
串口通信都是全双工异步通信 由于不需要时钟同步 所以就要 要求通信双方必须约定字符格式 和通信速率
字符格式一般采用字符帧的形式进行传输 字符帧由起始位 数据位 校验位 停止位组成
起始位:指的是一帧数据的开始 规定为1bit的低电平
数据位:指的是有效的数据位 可以为7bit 或者8bit (拓展ASCII)
校验位:指的是数据位的简单校验 可以确保数据正常发送 也可以避免噪声的影响 校验分为奇校验,偶校验 校验位也只占1bit 一般不用校验位
停止位:指的是数据传输完成 规定为高电平
对于STM32F407而言 一共提供了6个串口 其中4个是USART 2个UART USART指的是通用同步异步少收发器 而UART指的是通用异步收发器 相对于去掉了同步功能 一般串口我们使用异步通信