完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
例如,STM 可以定义自己的 putchar(char c) 实现,并照常使用 printf。
我使用的是免费的 tricore 工具链,HighTec/toolchains/tricore/v4.9.3.0-infineon-1.0/docs/userguide.pdf 第 406 页中关于 printf 的唯一说明是 stdout 重定向到模拟 io 调试器。 当然,您可以使用 Ifx_Console_print,但我想知道是否可以通过标准库来实现。 |
|
相关推荐
1个回答
|
|
要将printf使用的stdout重定向到asclin,您需要执行以下步骤:
1. 创建一个自定义的putchar函数,该函数将字符发送到asclin。这个函数将被printf函数用来输出字符。 ```c #include int custom_putchar(char c, FILE *stream) { // 将字符发送到asclin // 这里需要根据您的硬件和库实现发送字符到asclin的代码 // 例如,使用串口发送函数:send_char_to_asclin(c); return c; } ``` 2. 修改您的stdio实现,以便将stdout重定向到自定义的putchar函数。这可以通过设置stdout的put指针来实现。 ```c #include int main() { // 设置stdout的put指针为自定义的putchar函数 stdout->put = custom_putchar; // 现在printf将使用自定义的putchar函数输出字符 printf("Hello, world!n"); return 0; } ``` 3. 确保您的自定义putchar函数与您的硬件和库兼容。这可能需要根据您的特定硬件和库进行一些调整。 4. 编译并运行您的程序。现在,printf应该将输出重定向到asclin。 请注意,这种方法可能需要根据您的特定硬件和库进行一些调整。如果您使用的是HighTec工具链,您可能需要查阅相关的文档和示例代码,以确保正确实现。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教个XMC1404调试串口接收时为什么一直无法接收数据的问题
346 浏览 0 评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6120 浏览 2 评论
4101 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3628 浏览 9 评论
1229 浏览 8 评论
452浏览 2评论
267浏览 2评论
374浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6133浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
451浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 18:35 , Processed in 0.645023 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号