STM32入门100步 第5期 STM32内部通信功能

本文由杜洋介绍STM32单片机的内部通信功能,包括I2C总线、USART串口、SPI总线和CAN总线。STM32支持多种通信协议,适用于不同速度和距离需求。此外,还提到了CRC校验和芯片ID两个附加功能。I2C适合低速通信,USART灵活且速度较快,SPI适合高速通信,CAN则用于工业控制和汽车电子的高级总线。STM32内部集成了这些通信协议,便于与外部芯片通信。
摘要由CSDN通过智能技术生成

文 / 杜洋  洋桃电子

到洋桃电子全部文章:http://www.doyoung.net/YT/index.html 
这篇文章PDF百度云下载:https://pan.baidu.com/s/1hsqyVZI


上一期我们介绍了单片机的内部重要功能,重要功能是可以让单片机高效完成工作任务。但是重要功能所能做的只是通过GPIO读取逻辑电平,用ADC采集模拟电压。所做的工作都是些采集、控制之类。可是随着单片机系统的功能越来越多,有一些功能的实现是通过专用的芯片和模块来完成的。如果芯片和模块与单片机之间需要交换的数据太多,那么通过GPIO端口简单的高低电平是不够用的。这时就需要在芯片和单片机之间做专门用于通信的接口,虽然通信接口也是输入输出逻辑电平,但是它们都按照一个固定的格式规范来通信。这种通信的格式规范叫“通信协议”,针对不同的场合和应用需要,很多行业协会或大公司都会做出自己的通信协议,每一种协议都会有自己的名字。比如飞利浦公司做出了“I2C总线协议”,英特尔公司联合多家同行发布了“USB接口协议”。这些公司不仅设计出通信协议,还会把它们用在自己生产的芯片上。比如飞利浦旗下的NXP公司生产的LM75温度传感器,就使用了自家的I2C总线做为通信接口。由于行业巨头的引领,很多芯片厂商都用各种通信协议来生产芯片,很多单片机公司(包括ST公司)都会把最常用的通信协议加入到单片机内部。单片机用户想外接芯片时就能很方便地完成通信的开发。单片机与电脑的通信,其本质也是用某种通信协议来完成的。

每一种通信功能都包括硬件和软件两个层面。在硬件上的是通信接口,即通信需要几条连接线,单片机与芯片之间怎样连接。在软件上的是协议规范,也就是以什么样的逻辑电平方式通信。比如发送高电平代表什么,连发3个高电平代表什么,只有收发双方使用相同的规范,通信都能进行。接下来我们只从硬件层面介绍各通信功能的特性和电路连接,待讲到编程开发的时候再讲协议规范的部分。各通信功能没有高低贵贱之分,它们是依不同的场合和应用而设计的,各有各的优势。本篇只要先了解它们即可,今后会着重学习它们的使用。本篇的最后还要讲CRC校验、芯片ID两个功能,它们与通信功能无关,只是顺便一讲。CRC校验和芯片ID比较少用,学习起来也非常简单。

【图1】数据手册第1页中的通信功能描述

 

【I2C总线】

I2C总线(读做“I方C”或“I2C”)是飞利浦公司发布了一款通信总线标准。所谓总线是指在一线数据线上同时并联多个设备,设备是指连接在通信线上的芯片或模块。在I2C总线上的设备分为主设备和从设备,每一组I2C总线上只能有1个主设备,主设备是主导通信的,它能主动读取各从设备上的数据。而从设备只能等待主设备对自己读写,如果主设备无操作,从设备自已不能操作总线。I2C总线理论上可挂接几百个从设备,每个从设备都有一个固定的7位或10位从设备地址,相当于身份证号码。主机想读写哪个从设备就向所有从设备发送一个从设备地址,只有号码一致的从设备才会回应主设备。

如【图2】所示,STM32单片机在I2C总线上是主设备,3个I2C设备即是从设备。I2C总线由SCL和SDA两条数据线构成,SCL是总线的时钟线,用于主设备与从设备之间的计数同步。S

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
硬石YS-F1Pro 开发板开发手册(HAL 库) STM32 入门系列STM32 Cube 是一个全面的软件平台,包括 ST 产品的每个系列, ( 如 STM32Cube_F1 是针对 STM32F1 系列)。平台包括了 STM32Cube 硬件抽象层(HAL) 和一套中间组件(RTOS,USB,FS,TCP 等等)。 STM32Cube 是由 ST 公司原创倡议,旨在减少开发负担、时间和费用,为开 发者提供轻松的开发体验。 STMCube 覆盖了 STM32 全系列。 其中 STM32CubeMX 是上位机配置软件,可以根据使用者的选择生成底层初始化代码。 硬件抽象层 (HAL), 便是 CubeMX 配套的库, HAL 库屏蔽了复杂的硬件寄存器操作, 统一了 外设的接口函数( 包含 USB/以太网等复杂外设),代码结构强壮, 已通过 CodeSonar 认证。 同时, HAL 还集成了广泛的例程,可以运行在不同意法半导体 的开发板上。 YS-F1Pro 开发板是硬石团队研发的针对 STM32F103 芯片的综合性实验测试 平台,开发板几乎囊括了芯片所有的外设,这对新手入门是非常好的习平台, 开发板几乎所有芯片采购来着嘉立创平台,芯片质量有保证, 这与同行还是有很 大区别的。 YS-F1Pro 开发板是一款性价比极高的 STM32 开发板, 接口齐全,我们 特意添加了电机控制部分接口,包括舵机、进电机、有刷电机、无刷电机控制 接口。 本文档的一个最重要目标是让完全小白都可以轻松愉快的入门STM32, 最终掌握 STM32 的基本编程方法,会将 STM32CubeMX 应用到自己 DIY 应用 中去
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值