文件名称:串口简介-《中国5g垂直行业应用案例》(2020)
文件大小:383KB
文件格式:PDF
更新时间:2024-06-23 11:14:18
STM32 UART printf scanf 串口
5.1 串口简介 串口为一种串行通讯总线,用于异步通讯,在嵌入式开发调试中很重要。在任 何双向异步通信中,硬件上至少需要两根线,输入数据线(RX),输出数据线(TX). 通过这两个线,串行数据以如下数据帧发送和接收, STM32 的串口为全双工的异步通信,采用分数波特率发生系统,发送和接收 波特率相同,最大速率到 4.5 MBits/s,数据长度可编程为 8 位或者 9 位,停止 位可配置为 1 位或者两位。 5.2 串口应用实例 ----- 实现 printf 和 scanf 5.2.1 实例描述 首先初始化串口,波特率为 115200 波特,数据长度为 8,一位停止位,无奇 偶校验位。然后在串口终端输出 ” input your string, max: 80” 提示你输入字符 串,在你输入的时候,串口没有回显,该字符串以回车结束,当按下回车是,会 把你刚才输入的字符串打印出来。该实例应用到了库函数 printf 和 scanf。 5.2.2 半主机机制 (semihosting) 在了解如何实现 printf 和 scanf 之前,先来了解半主机机制。 半主机是这么一种机制,它使得在 ARM 目标上跑的代码,如果主机电脑运行 了调试器,那么该代码可以使用该主机电脑的输入输出设备。 这点非常重要,因为开发初期,可能开发者根本不知道该 ARM 器件上有什 么输入输出设备,而半主基机制使得你不用知道 ARM 器件的外设,利用主机电 脑的外设就可以实现输入输出调试。 所以要利用目标 ARM 器件的输入输出设备,首先要关掉半主机机制。然后再 将输入输出重定向到 ARM 器件上,如 printf 和 scanf,你需要重写 fputc 和 fgetc 函数。