stm32外设。

发布时间 2023-11-13 20:11:35作者: yuzuzu

1.定时器

  1. systick

  2.当前值寄存器从计数值往0减

  3.当计数到0是,产生中断<中断可以有可以没有>

  4.处理完达到倒计时要做的操作

  5.硬件会自动把重装载值寄存器的计数值加载到当前值寄存器中

  6.重新开始计时

  只要不把使能位清除,就永不停息,官方固件,只能开不能关,无法即开即关。

2.看门狗

  1.即开即关定时器,程序跑飞时进行系统重启

  2.oxCCCC开启看门狗

  3.oxAAAA喂狗

  4.ox5555开启写访问,关闭写保护

3.中断

  1.中断时cpu感知外部变化的一种重要方式

  2.分层

    1.中断源:触发中断

        io端口可以作为中断源,但不能直接触发中断,需要借助EXTI。

    2.借助EXTI

        EXTI是外部中断控制器,共19个中断线,其中16用于io端口,不同组同编号的公用一条中断线。

    3.中断控制器NVIC

        1.与核紧密相连

        2.为每一个连接的中断分配一个中断号,遵循核的异常向量表。

        3.分配中断优先级

        4.将中断报给ARM核

    4.ARM核

        1.处理中断

        2.保留程序执行现场

        3.切换函数地址到中断函数

        4.执行完毕回到程序执行地址,继续执行

 

4.串口usart

  1.通用的同步异步收发器

  2.uart是异步串行全双工的通信

  3.异步--没有时钟线,通过波特率约定传输速率

  2.用于板间芯片通信,不同设备之间通信,与上位机通信的串口用usart

 

5.DHT11传感器:温湿度传感器

  1.一线式1-wire

    1.通信双方只连接一条线

    2.半双工 异步 串行通信

    3.4pin  1---VDD  2---MCU  4----GND

    4.通信时序

      1.空闲时数据线处于高电平

      2.MCU发送起始信号:数据线拉低并持续至少18ms

      3.MCU将数据先再次拉高20~40us等待DHT11响应

      4.DHT11响应拉低数据线,最多响应时间为80us

      5.DHT11将数据线再次拉高80us,准备数据的传输

      6.每一位的数据传输,都是先拉低50us,再拉高,根据高电平持续长短区分0/1

        1.高电平持续70us 1

        2.高电平持续26~28us 0

      7.数据传输结束,DHT11拉低50us后不再拉高了

      8.MCU将数据拉高,结束通信

6.iic

  1.特点:

    1.集成电路总线

    2.低速、短距离的通信

    3.两条线,数据线和时钟线 两线式

    4.半双工、串行、同步

    5.连接多个设备EEPROM OLED SHT30

  2.通信时序(过程)

    1.主机发起起始信号

    2.主机发送通信的从机地址(7bit)和通信的方向(1bit)----从此不分主次,分发送器和接收器

    3.发送器发送8bit数据

    4.接收器发送1bit应答

    5.不限制发送数据的大小,即34两步可以无限循环

    6.主机发送停止信号

  3.通信时序(信号)

    1.起始信号:时钟线处于高电平,数据线从高到低跳变

    2.终止信号:时钟线处于高电平,数据线从低到高跳变

    3.数据传输

      1.高位先出

      2.低送高取:

        1.时钟线处于低电平期间,发送器放数据

        2.时钟线处于高电平期间,接收器读数据

    4.应答信号,接收器1bit应答

  4.iic之GPIO(gpio模拟iic)

    1.主机(MCU)发从机(外设)收----如OLED

      1.mcu发送开始信号

      2.muc发送7bit从机地址+1bit读写位

      3.从机1bit应答

      4.重复23,直到mcu数据发完了或者从机不应答了

      5.mcu发送停止信号

    2.主机收从机发

      1.mcu发送开始信号

      2.mcu发送7bit从机地址+1bit读写位

      3.从机应答

      4.从机发送8bit数据,mcu发送1bit应答

      5.从机数据发送完成或者mcu不应答

      6.mcu发送停止信号 

    3.先主机发,后来需要主机收----如EEPROM

      1.mcu发送起始信号

      2.mcu发送7bit从机地址+1bit读写位

      3.等待从机应答

      4.mcu发送8bit数据,从机1bit应答

      5.。。。。

      6.mcu发送起始信号

      7.mcu发送7bit从机地址+1bit读写位

      8.。。。。

  5.iic之EEPROM

    1.特点:

      1.电可擦除可编程只读存储器

      2.存储容量:1k 2k 4k 8k 16k

      3.stm32f103rbt6采用的是2k  256bytes == 256words == 32pages

      4.word address:0x00~0xFF

      5.读eeprom地址0xa1 写eeprom地址0xa0

    2.读

      1.当前地址读,上一次保存的地址+1      

        1.mcu发送起始信号

        2.mcu发送eeprom地址0xa1

        3.等待应答

        4.mcu接收1bytes数据

        5.mcu产生NOACK

        6.mcu发送结束信号  

       2.随机地址读,指定地址

        1.mcu发送起始信号

        2.mcu发送eeprom地址0xa0

        3.等待应答

        4.mcu发送wordadress

        5.等待应答

        6.mcu发送起始信号

        5.mcu发送eeprom地址0xa1

        6.等待应答

        7.mcu接收1bytes数据

        8.mcu产生NOACK

        9.mcu发送结束信号

      3.顺序读

        1.mcu发送起始信号

        2.mcu发送eeprom地址0xa1

        3.等待应答

        4.mcu读1byte

        5.发应答

        6.重复45

        7.mcu产生NOACK

        8.mcu发送结束信号

    3.写

      1.字节写

        1.MCU发送起始信号

        2.mcu发送eeprom地址0xa0

        3.等待应答

        4.mcu发送word address

        5.等应答

        6.mcu发送1byte数据

        7.等待应答

        8.mcu发送终止信号

      2.页写

        1.MCU发送起始信号

        2.mcu发送eeprom地址0xa0

        3.等待应答

        4.mcu发送word address

        5.等应答

        6.mcu发送1byte数据

        7.等待应答

        8.重复发送8bytes数据

        9.等应答

        10.mcu发送终止信号