STM32 uCOS下实现串口文件

本文介绍了如何在STM32单片机上使用uCOS操作系统,将串口作为标准输入输出接口。通过自定义FILE结构体,实现了fputc()和fgetc()函数,支持数据输出和输入,以及多任务环境下的同步。通过设置选项位,控制换行符的处理,并使用信号量和锁来确保并发安全。
摘要由CSDN通过智能技术生成

    不知道做单片机开发的朋友们是不是还在用自定义的数据打印函数打印字串呢?如:

  • UART_PutString(const char *str);
  • UART_PutChar(char ch);
  • UART_GetChar();
  • UART_GetString(char *str);

    其实C标准输入输出库文件中已为我封装好了许多我们需要的函数。只要我们做个简单的移植便可以将它们用上。在库里,我们可以用:格式化输入输出函数。如:puts()、printf()、putchar()、getchar()、scanf()等等。

    我们要做的莫非就两点:

  1. 实现putchar()与getchar()函数。告诉库,你的数据怎么输出去,怎么输入。
  2. 添加#include<STDIO.H>,并调用库函数便可。

    但是,我在做STM32下的程序开发时。发现库并没有提供putchar()与getchar()这么简单的函数。而是:

  • int fputc(int ch, FILE * file)
  • int fgetc(FILE * file)

    其中,FILE结构体在STDIO.H中并没有定义。而只是开放地声名了有那么一个类型,具体是需要程序员自己根据自己的需要定义。

    对于小型嵌入式系统的开发,也许你并没有想到“文件”这个层次上来。其实,这里有文件并非完全指的是存储数据的单元。它可以是设备,如显示器、键盘、串口输入输出等等。这些设备都可以被当成文件。我们只要通过FILE区分不同的文件,并对不同的FILE我们可以采集这个文件对应的输出输入方式。这么一来,FILE让我扩展的空间就大了。

    这里,我主要是想

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值