学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是IAR下调试信息输出机制之硬件UART外设。
在嵌入式世界里,输出打印信息是一种非常常用的辅助调试手段,借助打印信息,我们可以比较容易地定位和分析程序问题。在嵌入式应用设计里实现打印信息输出的方式有很多,本系列将以 IAR 环境为例逐一介绍 ARM Cortex-M 内核 MCU 下打印信息输出方法。
本篇是第一篇,我们先介绍最常见的输出打印信息方式,即利用 MCU 芯片内的硬件 UART 外设。本篇其实并不是要具体介绍 UART 外设模块使用方法,而是重点分析 IAR 下是如何联系 C 标准头文件 stdio.h 定义的 printf() 函数与 UART 外设底层驱动函数的。
- Note: 本文使用的 IAR EWARM 软件版本是 v9.10.2。
首先简介下本文介绍的打印输出方法整体软硬件框图,硬件上主要是 PC 主机、MCU 目标板、一根连接线(连接线有两种方案:一种是 RS232 串口线、另一种是 TTL 串口转 USB 模块板)。
软件上 PC 这边需要安装一个串口调试助手软件,然后目标板 MCU 应用程序需要包含打印输出相关代码,当 MCU 程序运行起来后,驱动片内 UART 外设实现打印字符数据 (hello world.) 物理传输,在 PC 上串口调试助手软件里可以看到打印信息。
上图里的 MCU 应用程序是在 IAR 环境下编译链接的,因此我们的重点就是 stdio.h 头文件里的 printf() 在 IAR 下到底是如何与 UART 外设驱动函数“勾搭”起来的。