uart环形缓冲区c语言实现
时间: 2023-09-29 21:05:47 浏览: 60
实现UART环形缓冲区的C语言代码如下所示:
```c
#include <stdio.h>
#include <stdlib.h>
#define BUFFER_SIZE 100
typedef struct {
char buffer[BUFFER_SIZE];
int head;
int tail;
int count;
} CircularBuffer;
void initBuffer(CircularBuffer* buffer) {
buffer->head = 0;
buffer->tail = 0;
buffer->count = 0;
}
int isBufferFull(CircularBuffer* buffer) {
return buffer->count == BUFFER_SIZE;
}
int isBufferEmpty(CircularBuffer* buffer) {
return buffer->count == 0;
}
void writeBuffer(CircularBuffer* buffer, char data) {
if (isBufferFull(buffer)) {
printf("Buffer is full. Data cannot be written.\n");
return;
}
buffer->buffer = data;
buffer->head = (buffer->head + 1) % BUFFER_SIZE;
buffer->count++;
}
char readBuffer(CircularBuffer* buffer) {
if (isBufferEmpty(buffer)) {
printf("Buffer is empty. No data to read.\n");
return 0;
}
char data = buffer->buffer
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)