这个之前用过来,但是由于当时测量数据波动就放在一边了,今天想起来又试了一试成功了。
就是这个模块,当然我用的是IIC的;
其实官方的计数说明书写的极其详细;
此程序来自官网教程,在模拟IIC接口,并且硬件无问题的情况下,多个模块同时运行测试通过;
4) STM32 CORTEX-3 ARM 主机模拟 I2C 通讯与 KS101B/KS103/KS103S 连接控制 C 代码
//单片机型号:STM32F103RBT //本程序未示出所有系统配置函数
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
u8 KS103_ReadOneByte(u8 address, u8 reg)
{
u8 temp=0;
IIC_Start();
IIC_Send_Byte(address); //发送低地址
IIC_Wait_Ack();
IIC_Send_Byte(reg); //发送低地址
IIC_Wait_Ack();
IIC_Start();
IIC_Send_Byte(address + 1); //进入接收模式
IIC_Wait_Ack();
delay_us(50); //增加此代码通信成功!!!
temp=IIC_Read_Byte(0); //读寄存器 3