STM32 基础系列教程 14 - IIC
前言
学习stm32 IIC接口的使用,用IIC 接口实现与IIC设备的通信功能。
示例详解
基于硬件平台: STM32F103C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。
本示例所用的最小系统板原理图:
- 关于CUBEMX工具及KEIL工具的操作将不再细讲,如果还有不熟悉的可以查看之前的教程文档。下面直接介绍工程配置:
- 系统时钟树
- IIC接口配置
- 引脚配置(如上图右侧所示,保持默认即可)
- 中断配置(保持默认即可)
- 工程代码
- 在main.c 中加入如下图所示代码:
代码的功能是每隔50ms 往地址为0x54地址发送10个字节数据,但是IIC总线要求每个字节通信都要有应答或非应答信号,我们的总线上没有挂设备,且地址0X54也是随意写的,这样每次就是只能发送一个字节然后失败停止发送,通信波形如下图所示。
为了保让 stm32 IIC接口能顺利启动,推荐在i2c.c文件中加入如下代码:
为了能正常演示STM32 iic 接口功能,在IIC接口上接上 mpu6050 传感器,并在main.c 中加入如下代码:
运行程序,可以看到程序可以正常读取到MPU6050中的相关数据!
- 到此,操作IIC接口功能实验就完成了,下在给出一个成功的IIC通信数据波形!!
OK,本期实验完成!下期见!同时如果大家有什么疑问或是有想了解的其它内容,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!
文中资料下载,在公众号里给十三发消息:
下载|STM32基础系列教程14
关注十三公众号
STM32 基础系列教程 14 - IIC相关推荐
- STM32 基础系列教程 50 – MbedTls
前言 mbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码.这是双重许可与Apache许可证 2.0版(与GPLv2许可也可).网站上指出,mbed ...
- STM32 基础系列教程 49 – Jansson
前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...
- STM32 基础系列教程 48 – CJSON
前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...
- STM32 基础系列教程 47 - MD5
前言 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信 ...
- STM32 基础系列教程 46 – RNG
前言 随机数发生器(RNG)是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个 32 位的随机数.STM32F407自带RNG ,本节将给大演示STM32F4系列MCU中的RNG的使用.用 ...
- STM32 基础系列教程 45 - FSMC_LCD_Touch
前言 上一节我们完成了用 STM32F4的 FSMC接口来控制 TFTLCD的显示的操作,其实正点原子的探索者F4开发板带的屏幕支持触摸操作,笔者用的是4.3寸的电容触摸屏,本节我们继续实验,来完成基 ...
- STM32 基础系列教程 44 - FSMC_LCD
前言 TFT-LCD 即薄膜晶体管液晶显示器.其英文全称为: Thin Film Transistor-Liquid Crystal Display. TFT-LCD 与无源 TN-LCD. STN- ...
- STM32 基础系列教程 43 – SRAM
前言 STM32F407ZGT6 自带了 192K 字节的 SRAM,对一般应用来说,已经足够了,不过在一些对内存要求高的场合, 比如跑算法或者跑 GUI 等,自带的这些内存就不够用了.比如跑算法或者 ...
- STM32 基础系列教程 42 - SDMMC+Fatfs
前言 本节我们将基于42讲 "STM32 基础系列教程 41 - SDMMC" 的基础来实现基于SD卡文件系统的文件操作. 示例详解 基于硬件平台: 正点源子的stm32f4 探索 ...
最新文章
- r240显卡 linux,NV发布260.19.36正式版Linux驱动 270系列将至
- 望城区构建摩托车电动车防盗系统 打造物联网平安智慧城市
- 画架构图的软件_程序员为什么要学会画技术架构图?
- JavaFX FXML场景编辑器使用示例
- Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制
- python中_str_使用方法
- 解决apache的the requested operation has failed
- IEEE 解除华为限制;AWS、谷歌云大规模故障;TypeScript 3.5 发布 | 极客头条
- 实数域上的压缩映射不动点原理
- C语言商品超市管理系统课程设计,C语言课程设计超市信息管理系统.doc
- 类型转化异常 Java Object转 int
- 正则表达式去除空格、符号,只保留中文、英文、数字
- 面向对象使用python-docx模块制作格式化文本(奖状生成器)
- 2017“硅谷技划”日记之五:从组织者眼光看Google IO大会
- wps教程 如何恢复文档
- 如何简单有效的管理企业数据安全
- python魔方方法
- 计算机没有机械硬盘了,到底有没有必要给笔记本加机械硬盘
- HADOOP KMS使用介绍及性能测试
- 无名namespace