查找网络上所有STM32103编写的FIFO库函数,整理出来一份最简洁的库函数代码
时间: 2024-03-14 19:48:35 浏览: 120
抱歉,我无法在网络上查找并整理STM32F103编写的FIFO库函数。但是,我可以给你提供一份简单的FIFO库函数代码,你可以根据自己的需要进行修改和优化。
```c
#include "stm32f10x.h"
#define FIFO_SIZE 64
typedef struct {
uint8_t buffer[FIFO_SIZE];
uint8_t *head;
uint8_t *tail;
} fifo_t;
void fifo_init(fifo_t *fifo) {
fifo->head = fifo->tail = fifo->buffer;
}
void fifo_put(fifo_t *fifo, uint8_t data) {
*fifo->head++ = data;
if (fifo->head == fifo->buffer + FIFO_SIZE) {
fifo->head = fifo->buffer;
}
}
uint8_t fifo_get(fifo_t *fifo) {
uint8_t data = *fifo->tail++;
if (fifo->tail == fifo->buffer + FIFO_SIZE) {
fifo->tail = fifo->buffer;
}
return data;
}
uint8_t fifo_is_empty(fifo_t *fifo) {
return fifo->head == fifo->tail;
}
uint8_t fifo_is_full(fifo_t *fifo) {
return (fifo->head + 1 == fifo->tail) || (fifo->head == fifo->buffer && fifo->tail == fifo->buffer + FIFO_SIZE - 1);
}
```
这份代码实现了一个基本的FIFO缓冲区,可以用于STM32F103的数据传输。你可以根据自己的需求进行修改和优化,例如增加缓冲区大小、使用DMA传输等。
阅读全文