【经验】 雅特力AT32 MCU Printf的功能使用方法
本文档主要介绍雅特力AT32 MCU芯片在Keil和IAR两种工程环境下的printf功能使用方法。其共包含如下表统计的6种方法,各方法的具体用法在具体内容中描述。
表1. AT芯片的printf函数使用方法汇总
具体内容
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)
软件设计
1) 头文件代码工程文件内添加“stdio.h”。2) 重定向设定Printf解除重定向(屏蔽与实际串口的重定向)。
仿真与下载
代码经编译后下载到MCU内,然后进入Debug调试环境中,经View->Terminal I/O(下图1)调出虚拟终端,然后全速运行代码即可看到程序主循环内的“Hello World”等内容被打印到了终端交互窗口Output栏(下图1)内,且在该窗口的Input栏内输入的数据也同样会被打印到Output窗口内。
图1. 虚拟终端窗口路径
图2. 虚拟终端交互窗口
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)
表4. 硬件连接关系表--(USART)
软件设计
1) 头文件
代码工程文件内添加“stdio.h”;
2) 重定向设定
串口初始化并将Printf重定向到实际的串口,重定向函数如下
仿真与下载
代码经编译后下载到MCU内,然后全速运行代码即可看到程序主循环内的“Hello World”等内容被打印到了终端交互窗口(下图3)内。
图3. 串口助手交互窗口
经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)
软件设计
1) 头文件
代码工程文件内添加“stdio.h”;
2) 跟踪引脚分配
3) Printf映射
仿真与下载
勾选如下图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相关设定
图5. Keil虚拟终端窗口路径
图6. Keil虚拟终端交互窗口
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)
表7. 硬件连接关系表--(USART)
软件设计
1) 头文件
代码工程文件内添加“stdio.h”;
2) Printf重定向
3) MicroLIB设定
图7. MicroLIB设定
仿真与下载
代码经编译后下载到MCU内,然后全速运行代码即可看到程序主循环内的“Hello World”等内容被打印到了终端交互窗口(下图8)内。
图8. 串口助手交互窗口
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)
表9. 硬件连接关系表--(USART)
软件设计
1) 头文件代码工程文件内添加“stdio.h”;
2) Printf 重定向
3) MicroLIB设定
图9. MicroLIB设定
4) Printf函数支持代码添加
仿真与下载代码经编译后下载到MCU内,然后全速运行代码即可看到程序主循环内的“Hello World”等内容被打印到了终端交互窗口(下图10)内。
图10. 串口助手交互窗口
经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)
软件设计
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端
仿真与下载
1) 通过JLinkRTTClient窗口输出
代码经编译后下载到MCU内,然后进入Debug调试环境中,打开JLink安装路径下名称为JLinkRTTClient的应用程序。此时单步执行代码时即可看到打印信息被依次输出到JLinkRTTClient窗口,如下图11和图12。
图11. 代码工程Debug
图12. JLinkRTTClient窗口输出信息
2) 通过JLinkRTTViewer窗口输出
代码经编译后下载到MCU内,然后打开JLinkRTTViewer窗口,如下图13。
图13. 打开JLinkRTTViewer窗口
点击OK,并在弹出的窗口再点击OK,然后在弹出的窗口输入并选择如下信息(此处以ZE系列为例),并点击OK。如下图14
图14. device选择窗口
拿前述代码进入Debug调试环境中,此时单步执行代码时即可看到打印信息被依次输出到JLinkRTTViewer窗口。如下图15
图15. JLinkRTTViewer窗口输出信息
注意事项
前述具体内容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”,不然代码编译可能会出现异常。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由无鞋转载自雅特力,原文标题为:AT32讲堂006 | AT32 MCU Printf的功能使用方法,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
【经验】雅特力AT32F4系列 MCU Cortex M4内核入门指南:位带操作、硬件浮点运算单元、滴答时钟中断功能
AT32F4系列产品是基于Cortex™-M4F处理器架构,该处理器是一款低功耗处理器,具有低门数,低中断延迟和低成本调试的特点。支持包括DSP指令集与浮点运算功能,特别适合用于深度嵌入式应用程序需要快速中断响应功能。
【经验】雅特力AT32 MCU CAN入门指南
CAN是Controller Area Network的缩写(以下称为CAN),它的设计目标是以最小的CPU负荷来高效处理大量的报文。本文介绍雅特力AT32 MCU CAN入门指南
【经验】雅特力MCU AT32F403ARCT7串口实验出意外导致无法使用问题的分析
在使用雅特力AT32F403ARCT7 MCU做串口实验时出了点意外,串口一直无法使用。首先需要将AT32F403ARCT7 上的 PB6 重映射为USART1_TX。介绍了串口无法往外发送数据,定义和初始化修改步骤。
雅特力32位MCU选型表
雅特力AT32 MCU的选型的相关技术参数如下,32位MCU,多种封装:TSSOP20,QFN28,QFN32,QFN48,LQFP48,LQFP64,LQFP100,LQFP144,稳定的工作温度:-40°C~85°C,-40°C~105°C,频率范围在96MHz~288MHz之间
产品型号
|
品类
|
Core
|
FPU
|
Speed(MHz)
|
Flash(KB)
|
SRAM(KB)
|
I/O
|
Advanced TM(16-bit)
|
GPTM(32-bit)
|
GPTM(16-bit)
|
Basic TM(16-bit)
|
Systick(24-bit)
|
WDT
|
WWDT
|
RTC
|
I2C
|
SPI
|
(F/H)I2S(1)(2)
|
USART/UART
|
SDIO
|
USB Device
|
CAN
|
ADC Engine
|
12-bit ADC ch
|
DAC Engine
|
12-bit DAC ch
|
PKG
|
Size(mm)
|
Temp(℃)
|
AT32F403ZCT6
|
32位MCU
|
M4
|
FPU
|
200MHz
|
256KB
|
96KB/224KB
|
112
|
3
|
2
|
8
|
2
|
1
|
1
|
1
|
1
|
3
|
4
|
0/4
|
3/2
|
2
|
1
|
1
|
3
|
21
|
2
|
2
|
LQFP144
|
20mmx20mm
|
-40℃~85°C
|
选型表 - 雅特力 立即选型
基于雅特力AT32 MCU的洗衣机电机控制驱动方案,解锁智能家居新体验
随着人工智能、物联网等技术的发展,传统家电逐渐向智能家电转型。洗衣机作为家庭生活中不可或缺的电器之一,其智能化升级对于提升生活品质具有重要意义。MCU作为电机控制系统的核心“大脑”,肩负着多样化的控制使命。雅特力AT32 MCU以其卓越的性能和完善的电机开发生态,为洗衣机、电动两轮车和电摩等电机应用产品提供高效电机控制驱动方案,并已实现规模量产。
AT32讲堂 | 解析雅特力AT32 MCU HICK时钟校准
AT32系列MCU内部都有提供适合运行的内部高速时钟(HICK),在25℃下,其典型值频率8MHz的精度由工厂校准到±1%,在-40到105℃,该内部高速时钟的精度达到±2.5%,可见精度会受到温度的影响。为了降低环境温度对精度造成的影响,用户可在运行时间隙调用校准程序来进行校准。
【经验】雅特力MCU如何在Keil中将函数或变量编译到指定地址
在使用雅特力MCU AT32F403A,AT32F421,AT32F413,AT32F415做软件编程中,有时会有将函数或者变量加载到固定的Flash地址,本文介绍2种将变量或函数编译到指定地址的方法。
【经验】雅特力AT32 MCU如何使用OTA通过USART实现对固件的在线升级更新
雅特力AT32 MCU如何使用OTA通过USART对固体在线升级更新?OTA(空中下载技术)是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后便于通过预留的通信口,对产品中的固件程序进行更新升级。
AT32讲堂 | 雅特力AT32 MCU的随机数生成
本章介绍了使用软件触发方式触发ADC,配置普通信道和DMA。本篇应用笔记适用于AT32各系列MCU,只要有ADC外设皆可适用。
【经验】雅特力MCU AT32F421的时钟配置教程
时钟是芯片正确高效运行的基础,正确的时钟配置是芯片能正确运行的必要条件,其重要性不言而喻。AT32各系列产品的时钟配置部分可能存在细微的差异和需要注意的事项,本文就着重针对各系列的情况来详细介绍如何结合雅特力提供的V2.x.x的板级支持包(BSP)来配置时钟。
【经验】雅特力AT32 MCU USB设备库的架构和使用方法
本文主要介绍雅特力MCU AT32 USB设备库的结构和库的使用方法,AT32 USB是基于USB2.0全速设备,不支持USB2.0高速设备。这里库的作用是用来管理USB外设和实现USB的基本协议,使开发者能够更快的上手开发。
如何在雅特力AT32 MCU上创建IAP应用程序
如何在雅特力AT32 MCU上创建IAP应用程序,文章概述了AT32 CAN IAP快速使用方法即使用CAN进行IAP升级,此示例使用PC上位软件(IAP_Programmer.exe)通过一个USB转CAN的桥接设备和目标板进行通信,IAP Demo和桥接设备默认CAN波特率使用500K。
【经验】解析雅特力AT32系列MCU RTC入门指南
RTC计数逻辑位于电池供电域,内部为一个32位递增计数器,只要电池供电域有电,RTC便会一直运行,不受系统复位以及VDD掉电影响。本文雅特力将为大家介绍AT32系列MCU的RTC入门指南。
【经验】如何使用雅特力MCU AT32F407的以太网通信接口实现在应用中编程?
在应用中编程(IAP)是一种在现场通过MCU通信接口(例如USART、USB、CAN和以太网)进行固件升级的方式。本文将介绍两种使用以太网通信外设在雅特力MCU AT32F407上实现IAP的解决方案。
【IC】雅特力AT32系列MCU通过IEC 60730功能安全认证,为家电产品提供安全保障
近日,雅特力AT32 MCU安全库顺利通过IEC 60730功能安全认证,为家电产品提供安全质量保证。国际公认的测试、检验和认证机构SGS为雅特力科技颁发了IEC 60730认证证书,彰显了雅特力科技在家电控制领域的卓越品质和技术实力,也为其在全球范围内的广泛应用奠定了坚实基础。
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
可烧录IC封装SOP/MSOP/SSOP/TSOP/TSSOP/PLCC/QFP/QFN/MLP/MLF/BGA/CSP/SOT/DFN;IC包装Tray/Tube/Tape;IC厂商不限,交期1-3天。支持IC测试(FT/SLT),管装、托盘装、卷带装包装转换,IC打印标记加工。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论