BMP180气压传感器 AVR代码无bug版

BMP180使用记录(AVR)

硬件篇

硬件按照数据手册连接到单片机的IIC接口或者任意两个IO口即可,记得要加2个4.7K左右上拉电阻。

软件篇

软件依照惯例百度了段AVR下的代码,下载进去后发现所读取出的数据完全不对,于是对照数据手册时序图和操作步骤修改了代码中的几处bug,同时修改了下代码命名规范什么的,修改后数据读取正常。
源代码中几处bug主要是:
1、从eep中读出来的校准参数是short型,后面计算气压公式中并没有将short型强制转换成long型,在winavr下面会导致计算结果错误,
2、IIC读数据移位部分逻辑错误

unsigned char iicRecv(void)
{
   	unsigned char i,data = 0;            
	SDA_IN;
	for(i=8; i>0; i--)
    {
		SCL_H;
		_delay_us(5);
		data|= ((SDA_RD_VAL>>5)<<(i-1));		// Be careful (PA5>>5) 	
		SCL_L;
		_delay_us(5);
	}
	return data;	
}
// 注意SDA_RD_VAL移位的时候注意是几号口就移多少,本代码是PA5

3、修改代码适用于各种读取模式

代码部分按照数据手册操作是很简单的,第一步从EEP里面读取出出厂校准参数,第二步写寄存器开启测量,按不同测量模式适当延时,第三步读取温度、大气压,第四步按照手册给定步骤计算即可。
注意点:
1、IIC读取连续地址数据的时候只需要写入首地址即可。
完整代码下载连接:https://download.csdn.net/download/shuzheai520520/12316149

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值