打印

在PSoC 中使用printf函数

[复制链接]
1607|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liuzaiy|  楼主 | 2018-10-11 17:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

在Creator实现printf功能很方便,步骤如下:

1. 软硬环境:Creator 3.1 SP2或以上, PSoC 4 或 PSoC BLE
2. 操作过程

(1) 工程中拖一个SCB UART组件。
(2) 配置rx/tx接口,如果是使用BLE Kit,直接配置到P1.4/P1.5即可。如果是042 Kit,还需要飞线跳一下。
(3) 在Main.c中添加必要内容:(以下默认使用gcc编译器,其他编译器需要参考UART的组件手册)

#include <stdio.h>

int _write(int file, char *ptr, int len)
{
    int i;
    for (i = 0; i < len; i++)
    {
        UART_UartPutChar(*ptr++);
    }
    return len;
}

(4) main()函数中添加:

UART_Start();

(5) 打开cydwr文件,修改system > Heap sizee为0x200或更大。

(6) 在需要的地方使用printf(...)

沙发
renyaq| | 2018-10-11 17:24 | 只看该作者
学习了,这个在调试的过程中用处比较大

使用特权

评论回复
板凳
xxmmi| | 2018-10-11 17:29 | 只看该作者
真是天感谢楼主了。。。。。。解决了困扰我许久的问题~~~~~~~~~~~~~~~~~

使用特权

评论回复
地板
houcs| | 2018-10-11 17:34 | 只看该作者
用SW_Tx_UART不好吗?

使用特权

评论回复
5
yinxiangh| | 2018-10-11 17:37 | 只看该作者
感谢啦!!终于解决问题了!!!!原来还有这样的设定!!

使用特权

评论回复
6
pangb| | 2018-10-11 17:41 | 只看该作者
请问我的printf函数不能打印出float型变量,其余都是正常的,是什么原因呢?

使用特权

评论回复
7
ousj| | 2018-10-11 17:45 | 只看该作者
  uint32 i = 444444444;
        float f = 55.555f;
    char *s;
    //UART_SetCustomInterruptHandler(&MyIntHandler);
   
   // isr_StartEx(UART_SCB_IRQ_Interrupt);
        UART_Start(); /* Start communication component */
        CyGlobalIntEnable; /* Enable interrupts */
   
        /* Use printf() function which will send formatted data through
        * UART (SCB mode) */
   
        UART_UartPutString("Welcome\r\n");
    sprintf(s, "%10.3f", 3.1415626);
        
    printf("Test printf function. long: %ld, float: %s \n",i,s);
        for(;;)
        {

        }

你需要把这个浮点型的数据做一个格式转换,然后就可以了。

使用特权

评论回复
8
liuzaiy|  楼主 | 2018-10-11 17:49 | 只看该作者

结贴了,多谢大家讨论这么多哈,呵呵

使用特权

评论回复
9
caoyunhj2301| | 2018-10-11 19:33 | 只看该作者
好的。解决可就好

使用特权

评论回复
10
wusong0909| | 2019-12-27 11:31 | 只看该作者
你好 我用的是PSoC 4.2
#include<stdio.h>以后调用printf会出现以下错误:
collect2.exe: error: ld returned 1 exit status
The command 'arm-none-eabi-gcc.exe' failed with exit code '1'.

UART 用的是SW_Tx_UART。

请教楼主,还用什么地方需要配置吗?(网上看到的信息是print底层有些函数没实现)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

735

主题

7546

帖子

2

粉丝