【蓝桥杯嵌入式国赛】可编程电阻MCP4017

写入0-127对应阻值为0-100KΩ。数值增大时相当于W向A移动。

一、导入官方软件IIC程序:

无需对CubeMX配置,使用软件IIC进行通信,在官方程序中,I2CInit()含有配置引脚的操作。

使用前在main函数初始化中调用I2CInit();

二、代码部分:

为方便操作,直接在i2c_hal.c中写MCP4017相关函数

写入阻值:

void MCP4017_write(uint16_t Kohm){
	I2CStart();
	I2CSendByte(0x5E);
	I2CWaitAck();
	I2CSendByte((uint16_t )((float)Kohm / 100 * 127));
	I2CWaitAck();
	I2CStop();
	HAL_Delay(5);
}

读操作:

uint8_t MCP4017_read(){
	uint8_t data = 0;
	I2CStart();
	I2CSendByte(0x5F);
	I2CWaitAck();
	data = I2CReceiveByte();
	I2CSendNotAck();
	I2CStop();
	HAL_Delay(5);
	return data;
}

由于0-127对应的阻值为0-100KΩ,故需要对这两个值进行映射。读出的数值应除127后乘以100即为响应的阻值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值