迅维网

查看: 1177|回复: 0
打印 上一主题 下一主题

关于STM32F103硬件IIC程序异常的问题的一个解决方法

[复制链接]
跳转到指定楼层
1#
发表于 2016-7-25 07:47:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 河北石家庄 来自 河北石家庄

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
在做公司项目的时候,需要用到陀螺仪、加速度、地磁三类传感器,可以知道这三个传感器可以通过IIC总线的方式进行访问,但是中间总是出现各种问题,特别是无法初始化后无法进行启动总线的动作,卡死在查询语句中,经过不断的测试与摸索,终于在网上受到了启发;
下面是我写的一个示例,注意goto语句的用法。

库文件
<p class="MsoNormal"><span lang="EN-US">#ifndef __HW_IIC_H</span></p>

<p class="MsoNormal"><span lang="EN-US">#define __HW_IIC_H</span></p>

<p class="MsoNormal"><span lang="EN-US"> </span></p>

<p class="MsoNormal"><span lang="EN-US">#include "stm32f10x.h"</span></p>

<p class="MsoNormal"><span lang="EN-US"> </span></p>

<p class="MsoNormal"><span lang="EN-US">void I2C_Configuration(void);</span></p>

<p class="MsoNormal"><span lang="EN-US"> </span></p>

<p class="MsoNormal"><span lang="EN-US">uint8_t I2C_Read(I2C_TypeDef *I2Cx,uint8_t
I2C_Addr,uint8_t addr,uint8_t *buf,uint16_t num);</span></p>

<p class="MsoNormal"><span lang="EN-US">uint8_t I2C_Write(I2C_TypeDef *I2Cx,uint8_t
I2C_Addr,uint8_t addr,uint8_t *buf,uint16_t num);</span></p>

<p class="MsoNormal"><span lang="EN-US">uint8_t I2C_WriteOneByte(I2C_TypeDef
*I2Cx,uint8_t I2C_Addr,uint8_t addr,uint8_t value);</span></p>

<p class="MsoNormal"><span lang="EN-US"> </span></p>

<p class="MsoNormal"><span lang="EN-US">#endif</span></p>


您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复