基于距离传感器的I2C通信(一)

  • 一、软硬件准备
    • (一)硬件
    • (二)软件
      • ST-Link驱动的下载安装
  • 二、keil软件的配置
    • (一)初始配置
    • (二)程序下载及调试
  • 三、器件的初步了解
  • 四、接线方法

基于stm32F103C8T6,以VL6180X为例实现I2C通信。
用到stm32cubemx+keil
本文主要讲解软件的配置与硬件的连接方法,代码部分位于文章——基于距离传感器的I2C通信(二)。

一、软硬件准备

(一)硬件

距离传感器和核心板的排针tb商家已经给焊好了

(二)软件

ST-Link驱动的下载安装

在ST官网下载,链接: link.
如果没有账号需要先注册才能下载。

之后解压,64位的计算机双击amd64的exe文件,一直下一步即可。
安装完成后在笔记本上插入购买的ST-LINK,打开控制面板中的设备管理器,如果能够显示ST-LINK则安装成功。

二、keil软件的配置

(一)初始配置

keil打开代码,选择调试方式为ST-LINK,之后点击右边的settings,port选择SW,点确定。
之后勾选上reset and run,表示下载程序后会自动重置并且运行下载好的程序。不勾选的话则需要手动按下板子上的reset才能运行烧录的程序。

(二)程序下载及调试

插入硬件后点击编译旁边的download即可以下载。
如果存在下载不成功的问题,请参考链接: link.

my work:
(1)在用cubemx把管脚c13配置成输出(参考tb提供的核心板资料,可以找到绿灯对应的管脚为c13。注意到红灯对应vss_2(GND),我们无法配置其管脚),生成一个新的程序后,直接下载程序,绿灯灭。加入HAL_GPIO_TogglePin函数和延迟函数后绿灯闪烁。
(2)过程中出现了下载不成功的现象,更改boots无效,长按板子上的reset时在settings中发现有设备,但是松开后便显示没有。之后通过上方链接的4解决此问题。

三、器件的初步了解

(1)ST-LINK用于软件的下载
(2)USB转TTL用于将电脑的信号转换为stm32的信号类型,连接电脑与stm32,实现两者之间信号的传输。其上的3.3、TXD、RXD、GND都要相应与stm32连接好。
(3)stm32核心板的最左边有一个可以接安卓充电线的口,可以用充电线连接板子和电脑,从而给核心板供电。
(4)关于距离传感器如何测距离——传感器的一侧平滑,一侧有各种小器件,它测量的是物体到有小器件一侧的距离。
另外一些资料tb商家会提供,ST官网会提供数据手册,网络上一般也会有传感器的驱动代码。

四、接线方法

(1)将核心板的四个插脚用杜邦线分别和ST-Link的相应管脚连接起来,之后将ST-Link插入电脑接口,红灯(系统灯,上电即亮)亮起,绿灯(此灯可供用户进行编程,初始状态为闪烁)闪烁。

(2)传感器有四个管脚需要接。vin连核心板的3.3,GND连G,SCL连A12,SDA连A11。(11,12是任选的两个IO口,由于核心板没有相应的i2c通信设备,要用IO口模拟IIC,可参考链接: link.)
(emm实际上传感器其他管脚的功能我没有搞懂,不一定是只接四个管脚)
(3)USB转TTL的TXD,RXD分别接A10,A9。因为查手册或者在cubemx中的USART中可知,这两个管脚分别可以作为USART1_RX、USART1_TX(管脚复用)。
(4)注意在程序下载调试时可能受到连接了传感器或者其他杜邦线等原因出现bug,建议程序下载时只接ST-link和核心板,调试好后再接入传感器和USB转TTL。

下期——
主要讲解相应的配置与代码

项目设计系列
stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用.
基于距离传感器的I2C通信(二).
完整的代码及相关资料.

基于距离传感器的I2C通信(一)相关推荐

  1. 基于STM32的I2C通信 2(读写AT24C02)

    本文采用STM32的模拟I2C对 EEPROM(AT24C02)进行读写操作. 1.EEPROM(24C02):I2C接口 1.1-24C02器件介绍: AT24C02的总容量是256个字节,也就是2 ...

  2. HAl库PCA9685基于I2C通信

    写这篇文章的目的主要是为了记录一下我在接触PCA9685时遇到的一些问题. 首先我在学习别人的文章时看到了很多开头初始化PCA,其实主要目的都是为了设置他的频率为50HZ,所以为了简洁方便,这里我的代 ...

  3. 基于WinCE的I2C驱动程序设计

    http://www.mcu123.com/news/Article/rtos/WinCE/200607/88.html 引言 随着以计算机技术.通信技术和软件技术为核心的信息技术的迅速发展,嵌入式系 ...

  4. STM32——stm32 I2C通信代码配置(2)(学习笔记)

    STM32--I2C通信配置 I2C的系统框架 1.通讯引脚 2.时钟控制逻辑 3.数据控制逻辑 4.整体控制逻辑 通信过程 写入过程 读取过程 I2C代码配置 I2C的初始化结构体 几个重要的函数 ...

  5. 基于APB与I2C的多主多从架构设计

    目录 1. Design Spec 1.1. Function Description 1.2. Feature List 1.3. Block Diagram 1.4. FSM Operation ...

  6. 基于FPGA Uart串口通信实验

    基于FPGA Uart串口通信实验 首先需要了解uart串口通信协议,根据个人专业需求不同,了解的层面可以不同. UART简介 通用异步收发传输器(Universal Asynchronous Rec ...

  7. 采用i.MX RT1020进行I2C通信实验

    目录 一.硬件概况 二.芯片内部的I2C模块基本工作机制 三.官方example代码分析(轮询) 四.I2C中断机制 五.官方example代码分析(中断) 六.I2C的DMA实现方式 七.官方exa ...

  8. php 基于socket的基本通信

    php 基于socket的基本通信 1.前言 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐 ...

  9. 怎么用matlab建立双机系统,基于MATLAB的双机通信的实现

    第 卷第 期< 年 月 华 东 交 通 大 学 学 报 」 飞 朗 而 , 文章编号 一 以刀 能 一 以巧 一 基 于 的双机通信 的实现 曹青松 , 周继 惠 , 熊国 良 华东交通大学 机 ...

最新文章

  1. TOMCAT学习笔记
  2. OpenSSH升级安装步骤(redhat)
  3. BRCM5.02编译七:No package 'uuid' found
  4. java原子引用怎么理解_Java 原子性引用 AtomicReference
  5. 好插件·用户造【CSND超好用插件】·【机械键盘大放送】
  6. 在 Mac上压缩的压缩包 在windows上都会产生.DS_Store这种垃圾文件 怎么办
  7. C#值类型以及默认值记录下
  8. 导出excel 后 页面按钮失效(页面假死)
  9. FFmpeg Android 学习(一):Android 如何调用 FFMPEG 编辑音视频
  10. jstack 脚本 自动日志_运维老司机又翻车, 居然没用过日志切割Logrotate
  11. Android TV 开发(2)
  12. 5、Android搭建RN开发环境
  13. 20181225面试
  14. 微信appid、openid、unionid的区别和关联
  15. 二寸证件照尺寸怎么调?这两个方法让你在家也能制作证件照
  16. Linux关于qt缺少xcb问题解决办法
  17. 2015-2017互联网产品经理笔试题
  18. pscs6免激活版,
  19. 基于Proteus学习单片机系列(二)——驱动数码管
  20. PHP集群中SESSION共享方案之Redis

热门文章

  1. 差异表达分析(DEG)时 row.names'里不能有重复的名字 的解决方案
  2. Java_scaner用法
  3. 企业面试题|最常问的MySQL面试题集合(二)
  4. Fusion360显示模糊怎么办?
  5. 简易画图工具(Python)
  6. 存储容量和IOPS的关系
  7. GreenPlum 大数据平台--运维(三)
  8. 基于Java的旅行管理系统的设计与实现
  9. 100万量子比特,PsiQuantum要怎样实现?
  10. CSS几种定位的使用