如何把字符void AddToBuff(char X){//mov x to charbuff f = 0 ; CharBuff[n] = X ;//n is position if (n == 8){//if full uart_disable(); while(1){ if(gpio_get(P_B1) == 0){ uart_enable(); n = 0; uart_tx(' '); f = 1; break; } } } m = n; n++; } void ReadChar(char c){ if (c >= 'A' && c <= 'Z'){ X = c; } },传入这个队列int queue_is_full(Queue *queue) { return ((queue->tail + 1) % queue->size) == (queue->head % queue->size); } int queue_is_empty(Queue *queue) { return queue->tail == queue->head; }
时间: 2024-03-10 12:45:42 浏览: 62
linux c++ 调用shell命令,保存执行结果 示例
可以将字符添加到队列中,然后通过队列操作将其传递给另一个函数。具体实现如下:
1. 在 AddToBuff 函数中,将字符 X 入队,即调用 queue_enqueue 函数:
```
void AddToBuff(char X){
if(!queue_is_full(&char_queue)) {
queue_enqueue(&char_queue, X);
}
}
```
2. 在 ReadChar 函数中,从队列中读取字符,即调用 queue_dequeue 函数:
```
void ReadChar() {
uint8_t item;
if(!queue_is_empty(&char_queue)) {
queue_dequeue(&char_queue, &item);
if(item >= 'A' && item <= 'Z') {
X = item;
}
}
}
```
需要注意的是,为了让 AddToBuff 和 ReadChar 函数可以访问同一个队列,需要将队列定义为全局变量,并在程序初始化时进行初始化:
```
Queue char_queue;
int main() {
queue_init(&char_queue);
...
return 0;
}
```
阅读全文