STM32笔记

STM32串口时钟使能笔记

STM32启动流程:

1.内核初始化:从硬件启动到软件运行的复杂过程,涉及多层级的硬件适配和子系统激活,最终为用户空间程序提供可运行的环境

2.初始化SP、PC指针以及中断向量表

3.设置系统时钟

4.初始化堆栈并进入main函数

1、通信协议:

串行和并行:

  • 串行:一位一位传输,数据线只有一根,更为常用
  • 并行:多位同时传输,数据线有多根,通信速度快,浪费资源,线与线之间存在干扰

通信方式:

  • 单工:只能由一个设备发送给另外一个设备,单向通信
  • 全双工:一般都有两根数据线,收发数据线之间不相互影响,可以同时进行
  • 半双工:一根数据线实现收发,收发不能同时进行

电平标准:

  • TTL电平: 3.3/5 V表示1,0V表示0
  • RS232电平:-3~-15V表示1,3~15V表示0
  • RS485电平:两线电压差 2~6V表示1,-2~-6V表示0
1.串口
  • 串口时钟使能:USART1由APB2ENR寄存器控制,其他串口使能都在APB1ENR寄存器,且APB2(72MHz)为APB1(36M)的两倍

USART:通用同步/异步收发器,但是同步中的时钟信号只支持输出,不支持输入

UART:通用异步收发器

USART 发送接收有三种基本方式:轮询、中断 DMA

串口参数设置:主要是基于异步通信UART

  • 波特率:收发方约定的数据传输速率,及串口通信的速率Bps(Baud/s)二进制下和bit/s相等
  • 起始位:标志一个数据帧的开始,固定为低电平,产生下降沿表示数据传输开始
  • 数据位:数据帧的有效位,1为高电平,0为低电平,低位先行(表示数据的低位先传输)
  • 校验位:可有可无,用于数据验证,根据数据位计算(奇/偶校验,保证1的个数为奇数/偶数)
  • CRC校验,相比奇偶校验有更高的检出率
  • 停止位:用于数据帧间隔,固定为高电平

        串口时钟在空闲时固定为高电平,收发数据时(先发低位再发高位),先出现下降沿的起始位,紧接着八位数据(可能再加一位校验位),最后有上升沿的停止位。

        如果没有起始位,当数据为第一位为高时,无法判断串口是否工作(空闲时为高电平),同理停止收发数据时,电平拉高。        

RS232、RS485:

        基于串口,在硬件层面实现的电平协议

        UART存在的问题:

  • 只规定了时序,对电气连接未定义,如多少电压代表高电平,多少电压代表低电平,不同处理器的高低电平有所差异
  • 抗干扰能力差,一般用TTL电平,传输容易出错
  • 通信距离短

1.RS232

        规定:逻辑1为-5v~-15v,逻辑1为5v~15v

        提高抗干扰能力,传输距离可达15m,点对点通信

2.RS485

        规定:两线电压差 2~6V表示1,-2~-6V表示0(差分信号),两线制是半双工,发送和收发都要用到两根线,由于是差分信号

        抗干扰能力强,传输距离可达1500m,允许连接多个收发器,与TTL电平兼容

        

2.IIC通信:

        串行半双工同步时序(对硬件电路不要求),带数据应答,支持总线挂载多设备

        两根通信线:SCL(一根时钟线)、SDA(一根数据线)--半双工

        硬件:所有设备SCL接在一起,所有SDA接在一起,多主机总线,同一时刻只有一个主机,从机只能被呼叫,每个连接在IIC上的设备有唯一的地址,7位地址

        特点:低速率,近距离通信

主机发送的一个字节(8位)中高七位是从机的地址,最后一位代表方向(0表示主机向从机发数据,1代表从机给主机发数据),在发送过程中不允许改变通信方向

           设备SCL和SDA配置为开漏输出模式(使得高电平驱动能力弱,IIC的标准模式只有100KHz)

时序单元:

        SCL全程由主机控制

  • 起始条件:SCL为高电平时,SDA从高到低(下降沿产生起始条件)主机发送
  • 终止条件:SCL为高电平时,SDA从低到高(上升沿产生终止条件)主机发送
  • 发送字节:SCL为低时,主机将数据放在SDA线上,从机在SCL高电平读取数据(高位先行,先发送高位数据
  • 接收字节:SCL为低时,从机将数据放在SDA线上,主机在SCL为高电平读取数据(主机接收数据前需要释放SDA线权)
  • 发送应答:主机在接收完一个字节之后,在下一个时钟发送一位数据,0表示应答,1表示非应答
  • 接收应答:主机在发送完一个字节之后,在下一个时钟接收一位数据,判断从机是否应答,0表示应答,1表示非应答(主机在接收之前,需要释放SDA)

停止信号:1数据发送/接收完成且完成应答信号    2主机/从机没有收到ACK应答信号

没接收到应答信号的可能原因:

  1. 硬件连接,包括传感器虚焊、地址选择口有没有添加这些
  2. 软件部分,包括iic控制是否正常、传感器地址是否正确、速率匹配问题、是否符合iic协议等等

3.SPI通信

        同步、全双工,传输速度快,设计简单粗暴,硬件开销大,支持总线挂载多设备,只支持一主多从模式

        四根通信线:SCK、MOSI(主机输出从机输入)、MISO、SS(从机选择)

        所有SPI设备的SCK、MOSI、MISO分别连在一起

        主机引出SS线,分别连接在从机的SS引脚

        输出引脚配置为推挽输出,输入引脚配置为浮空和上拉输入

4.CAN总线

Controller Area Network  控制器局域网络

CAN 是一种多主方式串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km 时,CAN 仍可提供高达50Kbit/s 的数据传输速率。

1.CAN总线特征:UART和IIC的结合体,同时又拥有RS485的电平

  1. 两根通信线:CAN_H、CAN_L,无需共地(实际应用中会共地,不然收发器需要承受很高的共模电压)
  2. 差分信号通信,抗干扰能力强
  3. 高速CAN(ISO11898):125k~1Mbps,<40m,使用闭环网络
  4. 低速CAN(ISO11519):10k~125kbps,<1Km,使用开环网络
  5. 异步,与串口类似
  6. 半双工,挂载多设备时,多设备同时发送数据时通过仲裁判断先后顺序
  7. 11位/29位报文ID,用于区分消息功能,同时决定优先级(ID号小的优先发送)
  8. 一次可以发送1-8个字节的有效载荷
  9. 广播式和请求式两种传输方式

2.CAN总线硬件电路

3.CAN总线电平标准

  •  高速CAN:电压差0V为逻辑1(隐性电平),电压差2V为逻辑0(显性电平)
  •  低速CAN:电压差-1.5V为逻辑1(隐性电平),电压差3V为逻辑0(显性电平)

隐性:总线默认状态,两线收紧,无电压差

显性电平和隐性电平同时出现时,表现为显性电平

4.CAN总线帧格式

数据帧:广播式通信方式,发送设备主动发送数据,高位先行

遥控帧:请求式数据传输,需要借助数据帧,无数据段

5.接收方数据采样

        CAN没有时钟线,设备通过约定波特率实现数据收发

2、独立看门狗(IWDG)

        由内部的40kHz低速时钟驱动,即使主时钟发生故障,它也仍然有效,并不是准确的40Khz,而是 在30~60Khz 之间的一个可变化的时钟,只是我们在估算的时候,以40Khz的频率来计算,看 门狗对时间的要求不是很精确

        主要设置:预分频系数prer重装载值rlr

        Tout=((4×2^prer) ×rlr) /32

其中Tout 为看门狗溢出时间(单位为ms); prer为看门狗时钟预分频值(IWDG_PR值), 范围为0~7;rlr为看门狗的重装载值(IWDG_RLR的值);

3、窗口看门狗

        窗口看门狗之所以称为窗口,就是因为其喂狗时间是在一个有上下限的范围内(计数器减到某个值~计数器减到0x3F),在这个范围内才可以喂狗,可以通过设定相关寄存器,设定其上限时间(但是下限是固定的0x3F)

4、定时器

        STM32F1共8个定时器

  • 高级定时器:TIM1, TIM8

        位于APB2总线

  • 通用定时器:TIM2, TIM3, TIM4, TIM5

        位于APB1总线

  • 基本定时器: TIM6, TIM7     

        位于APB1总线

        触发DAC同步电路

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

alwaysonlinee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值