从模块读取了数据,还需要一系列算法才能利用这些数据
This commit is contained in:
+1
-11
@@ -7,19 +7,9 @@
|
||||
|
||||
#include "eeprom.h"
|
||||
|
||||
#include "iic.h"
|
||||
|
||||
//iic硬件接口
|
||||
extern I2C_HandleTypeDef hi2c2;
|
||||
|
||||
void IIC_SAND_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG)
|
||||
{
|
||||
HAL_I2C_Mem_Write(&hi2c2,DEVICE_ADD,IN_DEVICE_ADD,I2C_MEMADD_SIZE_8BIT,DATAS,LONG,100);
|
||||
}
|
||||
|
||||
void IIC_READ_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG)
|
||||
{
|
||||
HAL_I2C_Mem_Read(&hi2c2,DEVICE_ADD,IN_DEVICE_ADD,I2C_MEMADD_SIZE_8BIT,DATAS,LONG,100);
|
||||
}
|
||||
//因为eeprom芯片的写入速度有限,每写入一个字符都需要等待一段时间才能完成写入
|
||||
//整个系统不可能等它一个的,传统的解决方法可以使用定时器中断或者多线程开辟子任务在后台保存,
|
||||
//这里的解决方法是使用状态机,通过一个链表将要保存的数据串起来,再通过状态循环一个个保存,保存延时等于循环用时。
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* iic.c
|
||||
*
|
||||
* Created on: Aug 21, 2021
|
||||
* Author: wuwenfeng
|
||||
*/
|
||||
|
||||
#include "iic.h"
|
||||
|
||||
//iicÓ²¼þ½Ó¿Ú
|
||||
extern I2C_HandleTypeDef hi2c2;
|
||||
|
||||
void IIC_SAND_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG)
|
||||
{
|
||||
HAL_I2C_Mem_Write(&hi2c2,DEVICE_ADD,IN_DEVICE_ADD,I2C_MEMADD_SIZE_8BIT,DATAS,LONG,100);
|
||||
}
|
||||
|
||||
void IIC_READ_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG)
|
||||
{
|
||||
HAL_I2C_Mem_Read(&hi2c2,DEVICE_ADD,IN_DEVICE_ADD,I2C_MEMADD_SIZE_8BIT,DATAS,LONG,100);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* iic.h
|
||||
*
|
||||
* Created on: Aug 21, 2021
|
||||
* Author: wuwenfeng
|
||||
*/
|
||||
|
||||
#ifndef IIC_H_
|
||||
#define IIC_H_
|
||||
#include "main.h"
|
||||
|
||||
void IIC_SAND_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG);
|
||||
void IIC_READ_DATE(uint16_t DEVICE_ADD,uint16_t IN_DEVICE_ADD,char *DATAS,uint16_t LONG);
|
||||
|
||||
#endif /* IIC_H_ */
|
||||
Reference in New Issue
Block a user