0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AT32讲堂006 | AT32 MCU Printf的功能使用方法

雅特力 AT32 MCU 2022-06-16 09:44 次阅读

内容概述

本文档主要介绍AT芯片Keil和IAR两种工程环境下的printf功能使用方法。其共包含如下表统计的6种方法,各方法的具体用法在具体内容中描述。表1. AT芯片的printf函数使用方法汇总b6aa03cc-e71c-11ec-a2f4-dac502259ad0.png

具体内容

IAR环境下经Terminal I/O虚拟终端输出

简介

IAR提供的链接到其Terminal的驱动内就包含有常用的scanf和printf等标准输入输出驱动函数,所以工程文件可直接经IAR自带的Terminal I/O窗口实现信息交互。

例程路径

001_Printf_Test_IAR_Terminal\project\iar_v8.2

环境及硬件设计

1)环境本方法需在IAR环境下使用,例程支持的编译环境为IAR_V8,硬件威廉希尔官方网站 板为AT-START-F403A_V1.2。2)硬件连接Link/AT-Link&...connection表2. 硬件连接关系表--(无JTDO)b6c4b4a6-e71c-11ec-a2f4-dac502259ad0.png

软件设计

1) 头文件代码工程文件内添加“stdio.h”。2) 重定向设定Printf解除重定向(屏蔽与实际串口的重定向)。

仿真下载

代码经编译后下载到MCU内,然后进入Debug调试环境中,经View->Terminal I/O(下图1)调出虚拟终端,然后全速运行代码即可看到程序主循环内的“Hello World”等内容被打印到了终端交互窗口Output栏(下图1)内,且在该窗口的Input栏内输入的数据也同样会被打印到Output窗口内。图1. 虚拟终端窗口路径b6d15724-e71c-11ec-a2f4-dac502259ad0.png图2. 虚拟终端交互窗口b6e225b8-e71c-11ec-a2f4-dac502259ad0.png

IAR环境下重定向为串口输出

简介

将printf函数重定向到芯片内的一组实际串口,经串口TX脚输出,最后由串口助手工具进行信息交互。

例程路径

002_Printf_Test_IAR_USART2\project\iar_v8.2

环境及硬件设计

1) 环境

本方法需在IAR环境下使用,例程支持的编译环境为IAR_V8,硬件威廉希尔官方网站 板为AT-START-F403A_V1.2。

2) 硬件连接

J-Link/AT-Link&...connection

J-Link/AT-Link&...connection

表3. 硬件连接关系表--(无JTDO)

b6f449dc-e71c-11ec-a2f4-dac502259ad0.png

USART2 connection

表4. 硬件连接关系表--(USART)

b706f136-e71c-11ec-a2f4-dac502259ad0.png

软件设计

1) 头文件

代码工程文件内添加“stdio.h”;

2) 重定向设定

串口初始化并将Printf重定向到实际的串口,重定向函数如下

b7122ba0-e71c-11ec-a2f4-dac502259ad0.png

仿真与下载

代码经编译后下载到MCU内,然后全速运行代码即可看到程序主循环内的“Hello World”等内容被打印到了终端交互窗口(下图3)内。

图3. 串口助手交互窗口

b722d6b2-e71c-11ec-a2f4-dac502259ad0.png

经Keil平台的Debug(printy) Viewer虚拟终端输出

简介

Keil平台自带有Debug(printf) Viewer接口,在ARM内核集成有常用的scanf和printf等标准输入输出驱动函数的前提下,该接口可用于标准的Printf交互。

例程路径

003_Printf_Test_Keil_JTDO\project\mdk_v5

环境及硬件设计

1) 环境

本方法需在Keil环境下使用,例程支持的编译环境为Keil_V5,硬件威廉希尔官方网站 板为AT-START-F403A_V1.2

2) 硬件连接

J-Link/AT-Link&...connection

表5. 硬件连接关系表--(含JTDO)

b73853e8-e71c-11ec-a2f4-dac502259ad0.png

软件设计

1) 头文件

代码工程文件内添加“stdio.h”;2) 跟踪引脚分配b75051f0-e71c-11ec-a2f4-dac502259ad0.png3) Printf映射b759cc12-e71c-11ec-a2f4-dac502259ad0.png

仿真与下载

勾选如下图4中的Enable,并设定Core值,Core值需与系统时钟相等。

设定串口时钟,通常通过勾选如下图4中的Autodetect max SWO C1来实现。当出现打印乱码时,此时可尝试不勾选Autodetect max SWO C1,并手动修改Prescale Core Clk保证打印信息正常。

随后即可编译代码下载到MCU内,然后进入Debug调试环境中,经View->Serial Windows->Debug (printf) Viewer(下图5)调出虚拟终端窗口,然后运行代码即可看到Hello World被实际打印到了终端交互窗口(下图6)内。

图4. Trace相关设定

b76b1ef4-e71c-11ec-a2f4-dac502259ad0.png

图5. Keil虚拟终端窗口路径

b78a20ec-e71c-11ec-a2f4-dac502259ad0.png

图6. Keil虚拟终端交互窗口

b7b4b870-e71c-11ec-a2f4-dac502259ad0.png

Keil环境下重定向为串口输出(使用MicroLIB)

简介

Keil环境有自带一个MicroLIB库,其内包含一些支持Printf函数的代码,在将Printf重定向到串口输出时,勾选使用MicroLIB后可由串口助手工具进行信息交互。

例程路径

004_Printf_Test_Keil_USART2_MicroLIB\project\mdk_v5

环境及硬件设计

1) 环境

本方法需在Keil环境下使用,例程支持的编译环境为Keil_V5,硬件威廉希尔官方网站 板为AT-START-F403A_V1.2

2) 硬件连接

J-Link/AT-Link&...connection

表6. 硬件连接关系表--(无JTDO)

b7cb5684-e71c-11ec-a2f4-dac502259ad0.png

USART2 connection

表7. 硬件连接关系表--(USART)

b7e04b16-e71c-11ec-a2f4-dac502259ad0.png

软件设计

1) 头文件

代码工程文件内添加“stdio.h”;

2) Printf重定向

b7ec80a2-e71c-11ec-a2f4-dac502259ad0.png

3) MicroLIB设定

图7. MicroLIB设定

b804b78a-e71c-11ec-a2f4-dac502259ad0.png

仿真与下载

代码经编译后下载到MCU内,然后全速运行代码即可看到程序主循环内的“Hello World”等内容被打印到了终端交互窗口(下图8)内。

图8. 串口助手交互窗口

b82ad758-e71c-11ec-a2f4-dac502259ad0.png


Keil环境下重定向为串口输出(不使用MicroLIB)

简介

Keil环境有自带一个MicroLIB库,其内包含一些支持Printf函数的代码。在将Printf重定向到串口输出时,如果不勾选使用MicroLIB,自行在工程文件内添加支持Printf函数的代码段,也同样可由串口助手工具进行信息交互。

例程路径

005_Printf_Test_Keil_USART2__Without_MicroLIB\project\mdk_v5

环境及硬件设计

1) 环境本方法需在Keil环境下使用,例程支持的编译环境为Keil_V5,硬件威廉希尔官方网站 板为AT-START-F403A_V1.22) 硬件连接J-Link/AT-Link&...connection表8. 硬件连接关系表--(无JTDO)b84b9268-e71c-11ec-a2f4-dac502259ad0.pngUSART2 connection表9. 硬件连接关系表--(USART)b85ae92a-e71c-11ec-a2f4-dac502259ad0.png

软件设计

1) 头文件代码工程文件内添加“stdio.h”;2) Printf 重定向b8698e08-e71c-11ec-a2f4-dac502259ad0.jpg3) MicroLIB设定图9. MicroLIB设定b87932e0-e71c-11ec-a2f4-dac502259ad0.png

4) Printf函数支持代码添加

b8a72574-e71c-11ec-a2f4-dac502259ad0.png仿真与下载代码经编译后下载到MCU内,然后全速运行代码即可看到程序主循环内的“Hello World”等内容被打印到了终端交互窗口(下图10)内。图10. 串口助手交互窗口b8c14cc4-e71c-11ec-a2f4-dac502259ad0.png

经JLinkRTT窗口输出

简介

JLink自带有调试输出功能,在添加JLink RTT库代码后,可根据指定的指令实现代码调试输出到对应的窗口。

例程路径

006_Printf_Test_Jlink_RTT\project\mdk_v5

环境及硬件设计

1) 环境

本方法在IAR及Keil环境下均可使用,例程支持的编译环境为IAR_V8、Keil_V5,硬件威廉希尔官方网站 板为AT-START-F403A_V1.2。

2) 硬件连接

J-Link connection

表10. 硬件连接关系表--(无JTDO)

b8cfe216-e71c-11ec-a2f4-dac502259ad0.png

软件设计

1) 头文件

代码工程文件内添加“stdio.h”;

2) 添加JLink RTT库代码

分别将JLink RTT库代码中的SEGGER_RTT.c和SEGGER_RTT_printf.c添加到工程文件内;

根据编译环境选择添加SEGGER_RTT_Syscalls_IAR.c或SEGGER_RTT_Syscalls_KEIL.c到工程文件内;

3) 输出到PC

此时,代码内调用如下SEGGER_RTT_WriteString或SEGGER_RTT_printf命令即可输出到PC端

b8e6814c-e71c-11ec-a2f4-dac502259ad0.png仿真与下载

1) 通过JLinkRTTClient窗口输出

代码经编译后下载到MCU内,然后进入Debug调试环境中,打开JLink安装路径下名称为JLinkRTTClient的应用程序。此时单步执行代码时即可看到打印信息被依次输出到JLinkRTTClient窗口,如下图11和图12。

图11. 代码工程Debug

b8f9bc12-e71c-11ec-a2f4-dac502259ad0.png

图12. JLinkRTTClient窗口输出信息

b90ae6fe-e71c-11ec-a2f4-dac502259ad0.png

2) 通过JLinkRTTViewer窗口输出

代码经编译后下载到MCU内,然后打开JLinkRTTViewer窗口,如下图13。

图13. 打开JLinkRTTViewer窗口

b9305d8a-e71c-11ec-a2f4-dac502259ad0.png

点击OK,并在弹出的窗口再点击OK,然后在弹出的窗口输入并选择如下信息(此处以ZE系列为例),并点击OK。如下图14

图14. device选择窗口

b9449840-e71c-11ec-a2f4-dac502259ad0.png

拿前述代码进入Debug调试环境中,此时单步执行代码时即可看到打印信息被依次输出到JLinkRTTViewer窗口。如下图15

图15. JLinkRTTViewer窗口输出信息

b95f4c12-e71c-11ec-a2f4-dac502259ad0.png

注意事项

前述具体内容2.3和2.6的测试时,只能用J-Link,AT-Link暂不支持;

前述具体内容2.1和具体内容2.2的测试时,如果使用AT-Link的话,工程内Options→CMSIS DAP→Reset选项必须选择为Hardware或者System,不然无法连接及下载代码;

前述具体内容2.2的测试时,工程内Options→General Options→Library Configuration→Library选项必须选择为Full,不然无法正常输出。因为只有选择为Full时,支持Printf函数的代码才会被包含进来。

前述具体内容2.6.5.1测试时,因输出窗口应用程序暂时无法指定芯片型号,为保证代码与窗口型号匹配且输出正常,目前工程内Device须选择ST的型号。且工程代码内必须要勾选“Options”内的“Use MicroLIB”,不然代码编译可能会出现异常。

关于雅特力雅特力科技于2016年成立,是一家致力于推动全球市场32位微控制器(MCU)创新趋势的芯片设计公司,专注于ARM Cortex-M4/M0+的32位微控制器研发与创新,全系列采用55nm先进工艺及ARM Cortex-M4高效能或M0+低功耗内核,缔造M4业界最高主频288MHz运算效能,并支持工业级别芯片工作温度范围(-40°~105°)。雅特力目前已累积相当多元的终端产品成功案例:如微型打印机、扫地机、光流无人机、热成像仪、激光雷达、工业缝纫机、伺服驱控、电竞周边市场、断路器、ADAS、T-BOX、数字电源、电动工具等终端设备应用,广泛地覆盖5G物联网、消费、商务及工控等领域。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17173

    浏览量

    351649
收藏 人收藏

    评论

    相关推荐

    STM32转AT32代码转换

    GD32等等。本文主要介绍一款ST32转AT32的工具AT32SmartCodeTransfer.exe,可以快速实现芯片的更换,提高开发效率。1.1.软件功能本软
    的头像 发表于 09-28 08:09 346次阅读
    STM32转<b class='flag-5'>AT32</b>代码转换

    AT32讲堂088 | 雅特力AT32F402/F405时钟配置

    简介时钟是芯片正确高效运行的基础,正确的时钟配置是芯片能正确运行的必要条件,其重要性不言而喻。AT32各系列产品的时钟配置部分可能存在细微的差异和需要注意的事项,本文档就着重针对各系列的情况来详细
    的头像 发表于 09-15 08:08 538次阅读
    <b class='flag-5'>AT32</b><b class='flag-5'>讲堂</b>088 | 雅特力AT32F402/F405时钟配置

    AT32讲堂087 | 雅特力AT32 IDE快速入门指南

    新建项目新项目向导AT32ID提供支持雅特力MCU的C语言项目模板,方便用户快速创建项目。菜单栏【File】>【New】>【CProject】。新建项目向导的对话框将出现。在对
    的头像 发表于 09-15 08:08 483次阅读
    <b class='flag-5'>AT32</b><b class='flag-5'>讲堂</b>087 | 雅特力<b class='flag-5'>AT32</b> IDE快速入门指南

    雅特力AT32 MCU的随机数生成

    应用的需求。底下提供两种方法:提高乱度的方法之一,使用ADC的误差。AT32的微控制器内置最多三个高级12位片上SAR模拟数字转换器(ADC)并提供自校准功能,保证1
    的头像 发表于 08-30 12:26 627次阅读
    雅特力<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>的随机数生成

    AT32讲堂085 | 雅特力AT32 MCU HICK时钟校准

    简介AT32系列MCU内部都有提供适合运行的内部高速时钟(HICK),其本质就是内置于芯片的RC振荡器。在25℃下,其典型值频率8MHz的精度由工厂校准到±1%,在-40到105℃,该内部高速时钟
    的头像 发表于 08-30 12:26 661次阅读
    <b class='flag-5'>AT32</b><b class='flag-5'>讲堂</b>085 | 雅特力<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> HICK时钟校准

    【GD32 MCU 入门教程】GD32 MCU FPU 使用方法

    GD32 MCU FPU 使用方法
    的头像 发表于 08-25 09:24 644次阅读
    【GD32 <b class='flag-5'>MCU</b> 入门教程】GD32 <b class='flag-5'>MCU</b> FPU <b class='flag-5'>使用方法</b>

    PLC中断功能的作用及使用方法

    PLC控制系统中的一项关键技术,对于提高系统的响应速度和实时性具有至关重要的作用。本文将对PLC中断功能的作用及使用方法进行详细的阐述。
    的头像 发表于 06-15 17:54 2141次阅读

    PLC IO接口的功能使用方法

    与外部设备通信的关键。PLC的IO接口功能强大且使用灵活,能够满足各种工业自动化场景的需求。本文将详细阐述PLC的IO接口的功能使用方法,旨在为读者提供全面而深入的了解。
    的头像 发表于 06-15 16:49 2193次阅读

    如何在雅特力AT32 MCU上创建IAP应用程序

    概述AT32CANIAP快速使用方法使用CAN进行IAP升级,此示例使用PC上位软件(IAP_Programmer.exe)通过一个USB转CAN的桥接设备和目标板进行通信,IAPDemo和桥接设备
    的头像 发表于 05-20 08:15 1161次阅读
    如何在雅特力<b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b>上创建IAP应用程序

    光纤熔接机的使用方法功能调节

    光纤熔接机是一种光纤通信系统中必不可少的设备,它主要用于将两根光纤进行熔接,使得信号能够顺利传输。在光纤通信系统中,光纤熔接机的使用方法功能调节非常重要。下面将介绍光纤熔接机的使用方法功能
    的头像 发表于 04-07 17:10 3692次阅读

    手机信号屏蔽器:功能、原理及使用方法详解

    深圳特信电子|手机信号屏蔽器:功能、原理及使用方法详解
    的头像 发表于 04-01 09:09 3186次阅读

    555集成芯片的使用方法

    555集成芯片的使用方法主要依赖于其特定的引脚功能和威廉希尔官方网站 设计。
    的头像 发表于 03-25 14:39 1540次阅读

    RA MCU中的CRC模块和使用方法

    瑞萨RA单片机硬件CRC计算单元采用固定的多项式发生器来计算8位或者32位数据的CRC校验值,对数据传输或数据存储的一致性、完整性进行验证。这篇文章重点介绍RA MCU中的CRC模块和使用方法
    发表于 02-26 11:45 998次阅读
    RA <b class='flag-5'>MCU</b>中的CRC模块和<b class='flag-5'>使用方法</b>

    雅特力AT32 MCU与SEGGER携手合作,开发量产事半功倍

    近日,雅特力与SEGGER共同宣布J-Link仿真调试器与Flasher在线烧录器全面支持AT32 MCU产品,SEGGER工具链的加持使AT32 MCU开发如虎添翼。 雅特力自201
    的头像 发表于 02-23 10:27 436次阅读

    万用表的使用方法步骤 万用表的hFE功能怎么用

    万用表是电子工程中常用的测量仪器,广泛应用于威廉希尔官方网站 测试、电阻测量、电流测量等方面。下面将详细介绍万用表的使用方法步骤以及万用表的hFE功能使用方法。 万用表使用方法步骤: 准备工作:首先确保万用表
    的头像 发表于 01-31 13:37 4859次阅读