新手上路
- 积分
- 25
- 金钱
- 25
- 注册时间
- 2020-8-21
- 在线时间
- 4 小时
|

楼主 |
发表于 2021-11-27 19:07:55
|
显示全部楼层
本帖最后由 redled88 于 2021-11-27 19:18 编辑
.c
- #include "mcp3421.h"
- #include "i2c_hal.h"
- void Mcp3421WriteData(u8t data)
- {
- I2c_StartCondition();
- I2c_WriteByte(0xd0);
- I2c_WriteByte(data);
- I2c_StopCondition();
- }
- void Mcp3421Init()
- {
- I2c_Init();
- Mcp3421WriteData(0x9F);//连续模式
- }
- u32 Mcp3421Read18Bit(void)
- {
- u32 voltage=0;
- u8 step,temp,cfg=0;
- I2c_StartCondition();
- I2c_WriteByte(0xd1);
- for(step=0;step<3;step++)
- {
- I2c_ReadByte(&temp,ACK,50);
- voltage=(voltage<<8)|temp;
- voltage&=0x03ffff;
- }
- I2c_ReadByte(&cfg,NACK,50);
- I2c_StopCondition();
- return voltage;
- }
复制代码
.h
- #ifndef __MCP3421_H_
- #define __MCP3421_H_
- extern void Mcp3421Init(void);
- extern void Mcp3421WriteData(u8t data);
- extern void Mcp3421Config(void);
- extern u32 Mcp3421Read18Bit(void);
- #endif
复制代码 |
|