完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在实际项目中,很多时候,我们需要将传感器、ADC的数值和计算的结果变量以波形的形式显示。通常的解决办法是用串口上位机、USB接口上位机或者MDK的逻辑分析仪等方式输出查看,使用这三种方式都比较繁琐,需要占用额外的系统资源。今天为大家讲解的J-Scope波形软件简单易用,不占用系统额外资源,无需用户写目标板代码,仅需将JLINK插上即可。 针对以上的问题,SEGGER推出了J-Scope波形显示软件。 J-Scope上位机 J-Scope是SEGGER公司推出的,可以在目标MCU运行时,实时分析数据并图形化显示的软件。它不需要SWO或目标上的任何额外引脚等功能,使用标准的调试接口即可。J-Scope波形显示软件主要有RTT和HSS两种工作方式。 01 HSS模式 HSS模式不需要在用户代码上面添加任何代码即可实现。只需要使用J-Scope加载MDK或者IAR的可执行文件即可(MDK生成的可执行文件为.axf文件,IAR生成的文件为.out文件),而且随时随地都可以连接目标板,不影响目标板的正常功能,不需要额外资源,同时可以设置上升沿,下降沿或者双沿触发。 02 RTT模式 RTT快速上传模式,需要用户在代码上加入RTT的相关组件(相关组件的添加请参考上一章节),并使用J-Link与目标板连接,此模式采用标准的下载接口,用到的下载接口有VCC、GND、SWDIO、SWCLK、RST。 03 J-Scope在HSS模式下支持的产品型号 04 JScope在RTT模式下支持的产品型号 05 不同版本的J-Link速度对比 HSS模式获取数据 HSS模式比较简单,仅需要将编译器生成的可执行文件加入到J-Scope上位机软件即可。 相对于RTT模式来说此模式随时随地都可以连接目标板,并且不影响目标板的正常功能,并且不需要额外的资源。但是相对于RTT模式也存在着速度慢的缺点,采样的速度基本上在1KHZ左右,仅适合采样变量变化速度低于1KHZ的情况。 01 HSS模式使用方法 将目标板与J-Link连接,下载程序后并重新上电。 打开J-Scope的上位机软件,如下图所示: RTT模式获取数据 RTT模式获取数据的原理就是利用SWD接口完成数据从MCU到J-Scope上位机软件的数据传输。此模式相对于HSS模式有更高的数据传输速率,最高可以达到2MB/s,并且随时可以连接目标板且不影响目标板的正常功能,并且可以添加时间戳。 01 RTT模式使用方法 1.1 软件配置 在目标工程中加入RTT的代码文件,具体的操作请参考上一讲RTT的移植教程,在主函数中加入RTT的初始化配置。 SEGGER_RTT_ConfigUpBuffer(1,"JScope_u2",buf,2048,SEGGER_RTT_MODE_NO_BLOCK_SKIP); 然后创建一个定时器,利用定时器定时向J-Scope上位机发送数据。 /****************************************************************************** * @brief * @param * @retval * @attention ******************************************************************************/ void TIM2_Configure(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; TIM_DeInit(TIM2); /* Enable TIM2 Clock */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); /* Config TIM2 Every 1ms Generate Interrupt */ TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Prescaler = (RCC_GetSysClockFreq() / 1000 - 1); TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period = (1000 - 1); TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); /* Clear TIM2 Update Flag */ TIM_ClearFlag(TIM2, TIM_FLAG_Update); /* Enable TIM2 Update Interrupt */ TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); /* Enable TIM2 */ TIM_Cmd(TIM2, ENABLE); /* Enable TIM2 Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } /****************************************************************************** * @brief * @param * @retval * @attention ******************************************************************************/ void TIM2_IRQHandler(void) { /* Clear TIM2 Update Interrupt Flag */ TIM_ClearITPendingBit(TIM2, TIM_IT_Update); SEGGER_RTT_Write(1, &g_SineWave128[(i++) % 128], 2); } 在主函数中初始化TIM2的配置: TIM2_Configure(); 1.2 J-Scope上位机配置 RTT模式的配置与HSS模式的配置类似,但是在J-Scope Configuration选项卡中的Sampling Source界面选择RTT模式,在RTT模式下不需要加载可执行文件。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
2249个成员聚集在这个小组
加入小组灵动微电子MM32全系列MCU产品应用手册,库函数和例程和选型表
11722 浏览 3 评论
【MM32 eMiniBoard试用连载】+基于OLED12864的GUI---U8G2
5939 浏览 1 评论
【MM32 eMiniBoard试用连载】移植RT-Thread至MM32L373PS
10975 浏览 0 评论
【MM32 eMiniBoard测评报告】+ 开箱 + 初探
4579 浏览 1 评论
灵动微课堂(第106讲) | MM32 USB功能学习笔记 —— WinUSB设备
4307 浏览 1 评论
[MM32软件] MM32F002使用内部flash存储数据怎么操作?
988浏览 1评论
814浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 06:49 , Processed in 0.401654 second(s), Total 38, Slave 30 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号