首页 > 其他分享 >stm32外设。

stm32外设。

时间:2023-11-13 20:12:29浏览次数:34  
标签:发送 应答 从机 stm32 地址 mcu 外设 起始信号

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发送终止信号


    

      

  

标签:发送,应答,从机,stm32,地址,mcu,外设,起始信号
From: https://www.cnblogs.com/zuzu/p/17830044.html

相关文章

  • stm32f103rbt6芯片部分知识点总结。
    使用的工具开发板:stm32f103rbt6内核:arm-cotex-m3系类v7架构r:64脚,b:128字节,6:工作温度范围muc就是stm32单片机芯片,soc是带操作系统的开发板,例如a53。 学习的主要内容掌握接口编程技术即裸板驱动开发通过直接写寄存器(寄存器地址=基地址加偏移地址)或调用函数实现cpu对......
  • STM32驱动OLED实现充电动画
    先看效果因为之前在项目中OLED一般只显示字符,今天闲来无事了解了一下取模功能,话不多说,直接开始教学。首先寻找一张你想显示的图片使用画图打开(重新调整大小,128乘以64)接着保存,注意是以单色图保存,下面是保存为单色的样子接着取模(使用的软件为Pctolcd2002),模式选择图片模式,按照下图修......
  • STM32F103:SWJ调试接口设置成普通的IO口——PA13,PA14,PA15,PB3,PB4
    一、STM32调试端口STM32有两种程序调试接口,具体如下:SWD调试接口: PA13、PA14共两个引脚。JTAG调试接口: PA13、PA14、PA15、PB3、PB4共五个引脚。 单片机启动后,初始状态这五个引脚就默认是调试接口。而实际使用中,一般只使用SWCLK、SWDIO这两个引脚用做S......
  • 最详细STM32,cubeMX串口发送,接收数据
    这篇文章将详细介绍串口发送数据,接受数据。@TOC前言实验开发板:STM32F103C8T6。所需软件:keil5,cubeMX。实验目的:了解串口的基础知识,掌握串口如何发送,接收数据。实验:串口发送数据点亮led。一、串口的基础知识如果想了解串口的基础知识可以参考我之前的文章:STM32Cube串口USART......
  • STM32实现无源蜂鸣器唱歌
    记录学习stm32中实现小demo所涉及到的知识点一、蜂鸣器发声原理蜂鸣器分为有源和无源两种。所谓的源,指的是其中内部的振荡源,有源蜂鸣器中的振荡器一般是[[多谐振荡器]],其原理就是模拟电路中RC振荡器的一般原理(放大电路、正反馈、相位差90°、稳压电路),有源蜂鸣器内部的振荡源频......
  • 最详细STM32,cubeMX 超声波测距
    这篇文章将详细介绍STM32使用cubeMX驱动超声波测距。@TOC前言实验材料:STM32F103C8T6开发板,HC-SR04超声波模块。所需软件:keil5,cubeMX,AiThinkerSerialTool串口助手。实验目的:了解STM32使用cubeMX驱动超声波。实验:超声波测距。一、超声波模块HC-SR04超声波测距模块可提......
  • STM32F407 LUA 串口代码传输进行功能热更新
    STM32F407LUA串口代码传输进行功能热更新1.首先放上LUA资源LUA2.整体思路创建keil工程--->移植lua--->补充相应功能3.移植LuaStep1正常解压即可只有这个文件有用Step2在这个文件夹里搜索,删掉这两个文件(这两个文件在stm32中不使用)剩余的文件按照添加BSP的流......
  • 1. 手动移植FreeRTOS V9.00到 Stm32F103C8T6
    记录移植过程,以便以后查看:1.使用cubeMAX配置一个工程a.选择单片机型号: b。设置SWD调试,选TIM4作为系统时钟,systick要用来跑freeRTOS c.NVIC默认使用Group4 配置GPIO,我这里配置了两个引脚,作为LED输出 d,RCC都选外部晶振 e。配置时钟树,HCLK72Mhz  f。project......
  • 给STM32装点中国风——华为LiteOS移植
    我都二手程序员好几个礼拜了!想给我的STM32来点“中国风”,装个华为LiteOS操作系统。在此之前,我也试过STM32CubeMX自带的FreeRTOS操作系统,不知是何缘故,用F103c8t6芯片时,FreeRTOS里的一个断言过不去。出师不利,决定换LiteOS试试,尽管移植LiteOS有些麻烦,不如STM32CubeMX生成......
  • (STM32)TIM
    TIM:定时器,定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断根据复杂度和应用场景分为:高级定时器、通用定时器、基本定时器三种类型 基本定时器:支持向上计数(0到1),只能选择内部的72MZ的时钟通用定时器、高级定时器:支持向上计数、向下面计数(1到0)、中央计数(0......