打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Jscope的RTT模式

1.下载这几个文件,也可以在Jscope的安装路径下找到。

  1. 将SEGGER_RTT.c,SEGGER_RTT.h,SEGGER_RTT_Conf.h添加进工程
  2. 添加缓存定义

    char JS_RTT_UpBuffer[4096];    // J-Scope RTT Buffer

int  JS_RTT_Channel = 1;       // J-Scope RTT Channel

   上面的缓存大小可以给小点512也行。

  1. 随便找个地方初始化

SEGGER_RTT_ConfigUpBuffer(JS_RTT_Channel, "JScope_I4I4I4", &JS_RTT_UpBuffer[0], sizeof(JS_RTT_UpBuffer), SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL);

5.#pragma pack(push, 1)

  struct {

    signed int Sine1;

    signed int Sine2;

    signed int Sine3;

  } acValBuffer;

  #pragma pack(pop)

上面是你要发送的结构体,自己定义

6.在你要发送的地方赋值并发送,例如在ADC中断

acValBuffer.Sine1 = ia;

acValBuffer.Sine2 = ib;

acValBuffer.Sine3 = ic;

SEGGER_RTT_Write(JS_RTT_Channel, &acValBuffer, sizeof(acValBuffer));

  1. 下面是重点!!!官方没提到的。例如我想发四个数,两个int型,两个short型

#pragma pack(push, 1)

  struct {

    signed int Sine1;

    signed int Sine2;

    short Sine3;

    short Sine4;

  } acValBuffer;

  #pragma pack(pop)

 

那么对应的初始化要改"JScope_I4I4I4"这个参数就要改成"JScope_I4I4I2I2"

8.还有一个更重要的!那就是如果发送频率过快,快卡死,卡在一个循环里。SEGGER_RTT.c这个文件的_WriteBlocking函数要做修改。

添加一句话。

if(0 == NumBytesToWrite)

       NumBytesToWrite =1;

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
物尽其用,分享一个很棒的工具
J
Segger RTT的使用
浅谈工程师的调试法宝(四)---RTT的应用
嵌入式开发笔记——调试组件SEGGER_RTT
十分钟让你的JLINK成为调试利器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服