社区导航

 

搜索
查看: 3392|回复: 4

[讨论] 【已解决】printf函数不能打印变量

[复制链接]

44

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2015-2-28 21:33 | 显示全部楼层 |阅读模式
本帖最后由 416202554 于 2015-2-28 23:05 编辑

使用MSP430FR5969开发板做个小项目,调用库配置了UART,并且测试正常,然后将printf函数重定向到uart上,结果只能打印字符串,打印不出变量,不知有没有人遇到过这样的问题
贴上代码:
  1. int fputc(int ch, FILE *f)
  2. {
  3.         /* 发送一个字节数据 */
  4.         EUSCI_A_UART_transmitData(EUSCI_A1_BASE, (int8_t) ch);

  5.         /* 等待发送完毕 */
  6.         while (EUSCI_A_UART_queryStatusFlags(EUSCI_A1_BASE, EUSCI_A_UART_BUSY) != RESET);

  7.         return (ch);
  8. }
复制代码
/**********************************我是华丽的分割线*************************************/

问题已解决google,找到了官方wiki,按照里面配置,稍加修改解决问题,原来和STM32还有点不同
Printf support for MSP430 CCSTUDIO compiler30_CCSTUDIO_compiler

不仅要重写fputc()函数,还要重写fputs()函数,在STM32里,只重写fputc()函数即可。

我按照wiki里的设置,不能打印,我想应该是没有指定UART的缘故吧,因此我重写了上述两个函数,贴上代码
  1. int fputc(int _c, register FILE *_fp)
  2. {
  3.         /* 发送一个字节数据 */
  4.         EUSCI_A_UART_transmitData(EUSCI_A1_BASE, (uint8_t) _c);

  5.         return (_c);
  6. }

  7. int fputs(const char *_ptr, register FILE *_fp)
  8. {
  9.   unsigned int i, len;

  10.   len = strlen(_ptr);

  11.   for(i=0 ; i<len ; i++)
  12.     EUSCI_A_UART_transmitData(EUSCI_A1_BASE, (uint8_t) _ptr[i]);

  13.   return len;
  14. }
复制代码




回复

使用道具 举报

3658

TA的帖子

11

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

发表于 2015-2-28 21:47 | 显示全部楼层
printf在工程里默认就应该是配置好的啊。打印字符串,打印变量的具体语句是什么?

点评

谢谢,已解决  详情 回复 发表于 2015-2-28 22:55

回复

使用道具 举报

1739

TA的帖子

24

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2015-2-28 22:00 | 显示全部楼层
不能printf打印可能是没有配置好。可以尝试直接输出字符确定是否是配置出现了问题。

点评

谢谢,已解决  详情 回复 发表于 2015-2-28 22:56
这孩子,成熟的象征,理智的典范。

回复

使用道具 举报

44

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-2-28 22:55 | 显示全部楼层
ienglgge 发表于 2015-2-28 21:47
printf在工程里默认就应该是配置好的啊。打印字符串,打印变量的具体语句是什么?



谢谢,已解决

回复

使用道具 举报

44

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2015-2-28 22:56 | 显示全部楼层
lonerzf 发表于 2015-2-28 22:00
不能printf打印可能是没有配置好。可以尝试直接输出字符确定是否是配置出现了问题。



谢谢,已解决

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-2-25 22:53 , Processed in 0.185121 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表