基于距离传感器的I2C通信(一)
基于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通信(二).
完整的代码及相关资料.