This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR2355:正在尝试在 MSP430FR2355EVM 上使用 CIO?

Guru**** 2535150 points
Other Parts Discussed in Thread: MSP430FR2355

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1021512/msp430fr2355-trying-to-use-cio-on-msp430fr2355evm

器件型号:MSP430FR2355

您好...

我花了一整天的时间来寻找一个简单的好的解释、说明如何将 A/D 值打印到控制台、但却没有结果。  我已经查看了使用 Put 的提示建议、但在这里、除非我将 A/D 转换为字符串、否则似乎没有帮助。  我已将堆栈和堆都增加到400、并成功地使用 PUT 打印 Hello World。   

我有一个简单的 TI 示例、用于获取 A/D 数据、并希望在每次 ISR 触发时将其打印到控制台、以便查看值。  有人能告诉我这款 EVM 是否可以实现、如果可以、我该怎么做?  PUT 语句很烦人、因为每次代码在 trgms.c 中的某个位置中断、并且只执行字符串。  printf 似乎不起作用????

谢谢

Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更多信息…

    通过一些操作(堆和堆栈位于400处)、printf 现在可以正常工作。  我把他们改成了1024,有点“踢-开始”……回到400,一直到工作。

    唯一需要解决的问题是(即使我没有设置断点)为什么代码在行的控制台打印之前总是停止:

        for (i = 0; i < length; i++) PACKCHAR(*data++, p, i+8);
    

    在 trgms.c 中?

    是否有办法让代码继续运行并打印到屏幕上?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Steve,

    您是否曾尝试重定向 printf? printf 将调用 fputc。 您可以重新定义 fputc()以像通过 UART 一样发送所需的数据。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Allen。

    我从未尝试过重新引导。  不确定如何执行此操作。  我已经使用 STM32产品(借助 YouTube 视频)完成了此操作、但在这里、我似乎可以访问可访问系统功能的.c 文件。  当我将 printf、putc 或 fputc 放入 main 中时、我无法获取代码以跳转到源文件。  对此有任何帮助吗?

    谢谢

    Steve

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="393571" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1021512/msp430fr2355-trying-to-use-cio-on-msp430fr2355evm "] Pings 语句很烦人,因为每次代码在 trgms.c 中的某个位置中断,加上字符串只会中断。

     对于勘误表 EEM23似乎是由 MSP430FR2355引起的 MSP430FR2355 -请参阅 MSP430FR2675:如何在 CCS 10中启用到控制台的 printf 输出? 对于其他 MSP430FR 器件上出现的同样问题、也可能在 MSP430FR2355上复制该问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="39351" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1021512/msp430fr2355-trying-to-use-cio-on-msp430fr2355evm "] printf 似乎无法正常工作????

    我使用 CCS 10.4.0.00006和 TI 编译器 v21.6.0.LTS 进行了介绍:

    1.为 MSP430FR2355创建一个新的"空项目(使用 main.c)"。 这是在将"需要 printf/scanf 支持的级别(--printf_support)"设置为最小值的情况下创建的。

    2.对于格式化字符串的示例,请使用以下代码:

    #include <msp430.h> 
    #include <stdio.h>
    
    
    /**
     * main.c
     */
    int main(void)
    {
    	WDTCTL = WDTPW | WDTHOLD;	// stop watchdog timer
    	
    	printf ("Hello World! (FRCTL0=0x%x)\n", FRCTL0);
    
    	return 0;
    }
    

    3.在 CCS Build -> MSP430 Linker -> Basic Options 下的 CCS 工程属性中、将堆大小和堆栈大小设置为300字节(在其他示例中足够)。

    运行时、它在 trgms.c 中停止、但如果在停止后恢复、则 printf 输出会出现在 CCS 控制台上:

    Hello World! (FRCTL0=0x9610)

    5.如果之后在 main 暂停、则在 FRCTL 下的 Registers 视图中将 FRCTL 的值设置为0xa500、以将 NWAITS 从默认值1更改为0。

    现在、当运行程序时、在 CCS 控制台上获得以下输出、而程序不会在 trgmsg.c 中停止(FRCTL0的报告值显示 NWAITS 现在为零):

    Hello World! (FRCTL0=0x9600)

    请注意、将 NWAITS 设置为零以停止调试器在 trgms.c 中停止运行的变通方法、显然是由于勘误表 EEM23的原因、只有当程序设置 处理器频率(最大 MCLK 频率)<= 8MHz 时才有效。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢!

    是的,这是可行的。。