目录
.c文件
/**
******************************************************************************
* Copyright (C),
* @file Bsp_adc.c
* @brief
*
* @version @date @author @explain
* V1.0 2020-07-01 LoveMyBaoBaoGao 创建该文件
*
******************************************************************************
* @attention
******************************************************************************
**/
/* Includes ------------------------------------------------------------------*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
Fifo_Sturct test = FIFO_INIT; //电压采样
/****************************************************************************
* @file void Fifo_Reset(void)
* @brief 将Fifo数据清零
* @explain
* @parameter 无
* @return 最大值位置
****************************************************************************/
void Fifo_Reset(void)
{
test.Fifo_Write = 0;
test.Fifo_Read = 0;
test.Fifo_Write = 0;
}
/****************************************************************************
* @file static void Fifo_Data_Write(u16 _write_data)
* @brief 将数据写入Fifo中
* @explain
* @parameter _write_data:需要写入的数据
* @return 最大值位置
****************************************************************************/
static void Fifo_Data_Write(u16 _write_data)
{
test.Fifo_Buf[test.Fifo_Write] = _write_data;
if(++test.Fifo_Write>=FIFO_SIZE)
{
test.Fifo_Write=0;
}
if(test.Fifo_Count<FIFO_SIZE)
{
test.Fifo_Count++;
}
}
/****************************************************************************
* @file static u8 Fifo_Data_Read(u16 *_pByte)
* @brief 取最大值的位置
* @explain
* @parameter _pByte:需要写入的指针
* @return 0:失败 1:成功
****************************************************************************/
static u8 Fifo_Data_Read(u16 *_pByte)
{
u8 us_count = 0;
us_count = test.Fifo_Count;
if(us_count == 0)
{
return 0;
}
else
{
*_pByte = test.Fifo_Buf[test.Fifo_Read]; /* 从串口接收FIFO取1个数据 */
if (++test.Fifo_Read >=FIFO_SIZE)
{
test.Fifo_Read = 0;
}
test.Fifo_Count--;
return 1;
}
}
void Fifo_test(void)
{
u16 new_adc_value = 0;
Fifo_Data_Write(0xA1);//写入数据
Fifo_Data_Write(0xA2);//写入数据
Fifo_Data_Write(0xA3);//写入数据
Fifo_Data_Write(0xA4);//写入数据
Fifo_Data_Write(0xA5);//写入数据
while (Fifo_Data_Read(&(new_adc_value));//读取数据,直到没有数据读出时
}
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
.h文件
/**
******************************************************************************
* Copyright (C), simcotech
* @file Bsp_adc.h
* @brief
*
* @version @date @author @explain
* V1.0 2020-07-01 LoveMyBaoBaoGao 创建该文件
*
******************************************************************************
* @attention
******************************************************************************
**/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef _FIFO_H
#define _FIFO_H
/* Includes ------------------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
#define FIFO_SIZE 30
/* Exported types ------------------------------------------------------------*/
typedef struct
{
u16 Fifo_Buf[FIFO_SIZE];//数据buf
u8 Fifo_Write;//写入fifo
u8 Fifo_Count;//fifo计数
u8 Fifo_Read;//fifo读取
}Fifo_Sturct;
/* Exported constants --------------------------------------------------------*/
#define FIFO_INIT \
{\
{0,0,0},\
0,\
0,\
0,\
0,\
}
/* Exported macro ------------------------------------------------------------*/
extern Fifo_Sturct Test;
#endif /* _FIFO_H */
/******************* (C) COPYRIGHT Simcotech *****END OF FILE****/