工具/软件:
您好专家
客户使用 printf() 函数提供反馈浮点数据无法通过 SCI 正确打印、但使用 L1306 器件时、该函数可以很好地处理浮点数据。 我看到、在 CCS 设置中、可以选择如何构建 stdio 函数: 如何启用浮点值打印? 但如何使用 Keil 进行此操作呢?
谢谢
Joe
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.
工具/软件:
您好专家
客户使用 printf() 函数提供反馈浮点数据无法通过 SCI 正确打印、但使用 L1306 器件时、该函数可以很好地处理浮点数据。 我看到、在 CCS 设置中、可以选择如何构建 stdio 函数: 如何启用浮点值打印? 但如何使用 Keil 进行此操作呢?
谢谢
Joe
Dose 客户可以打印定点值、在 Keil 中没有问题?
没错。
我研究了其他讨论、似乎 MSPM0 系列可以支持完整规格 stdio、使用 L1306 打印浮点数据没有问题。 因此、我很好奇这个库是否有构建设置。
我不推荐使用 printf();在 M0 中、它需要大量资源、[/报价]客户调试例程需要该函数、因此需要在开发中使用该函数、但会在器件投入大规模生产后阻止该函数。
谢谢
Joe
嗨、Gary
我在 CCS 的 C1106 工程中测试 printf() 函数、似乎存在一些问题:
如果我按如下所示添加 printf() 函数、然后单击“Build",“,控制、控制台窗口将报告警告。


如果忽略该警告并开始调试代码、工程将在停止 cinit 函数 但不是 main 函数的第一行、然后我点击“run",“,该、该工程最终将运行到主循环中、但我无法在控制台窗口中看到打印的任何内容。

但是、如果按照警告操作按照 E2E 线程中所述手动移出.cmd 文件、然后添加-heap define、工程编译将报告问题。


即使我将-heap 大小更改为小于默认值的 0x100、也会报告相同的问题。
谢谢
Joe
请参阅此代码
e2e.ti.com/.../gpio_5F00_software_5F00_poll_5F00_LP_5F00_MSPM0C1106_5F00_nortos_5F00_ticlang.zip
并监控 CIO 列中的值

似乎添加了 puts(“")“);为了使 printf 正常运行、您也可以参阅此页面了解更多信息
https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_tips_for_using_printf.html
此示例项目中的代码...
[引述 userid=“319723" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1560410/mspm0c1106-how-to-enable-the-floating-point-printf-function-output-with-keil/6007521请参阅此代码
gpio_software_poll_LP_MSPM0C1106_nortos_ticlang.zip
并监控 CIO 列中的值
[/报价]...包含这些源代码行...
printf("value:%d", ii);
puts("");
请注意 Printf 调用不打印换行符 \n 。 Printf 将输出写入默认流 stdout 。 该流被行缓冲、这意味着只有看到换行符或缓冲区已满时才写入输出。 函数 终端 定义为始终在字符串的末尾写入换行符、即使它是空字符串也是如此。 此代码等效...
printf("value:%d\n", ii);
我怀疑类似的更改可以解决问题。
谢谢。此致、
-乔治