打印

DSP printf问题

[复制链接]
3960|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wofjvbn|  楼主 | 2013-1-29 17:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有while(1)时 没有输出,把while(1)删掉,printf就好使,为什么
#include<csl.h>
#include<csl_pll.h>
#include<csl_chip.h>
#include<csl_gpio.h>
#include<stdio.h>

void delay()
{
        Uint32 j = 0,k = 0;
        for(j = 0;j<0x30;j++)
        {
                for(k= 0;k<0xffff;k++)
                {}
        }
}

PLL_Config My_Config = {
0,
1,
24,//pllmult
1  //div
};
void main(void)
{
        CSL_init();   /* Init CSL */
        PLL_config(&My_Config);
        GPIO_RSET(IODIR,0XFF);//GPIO output               
        printf("hello!");
        while(1)
        {
                GPIO_RSET(IODATA,0Xff);
                delay();
                GPIO_RSET(IODATA,0X00);// "1"
                delay();

        }
}

相关帖子

沙发
jlass| | 2013-1-29 17:22 | 只看该作者
printf有延时的特性,不加while(1)时,程序可能进行到其他地方死掉了,printf还没来的及打印。

使用特权

评论回复
板凳
wofjvbn|  楼主 | 2013-1-29 17:41 | 只看该作者
jlass 发表于 2013-1-29 17:22
printf有延时的特性,不加while(1)时,程序可能进行到其他地方死掉了,printf还没来的及打印。 ...

把while(1)去掉后可以打印,程序可以修改吗?

使用特权

评论回复
地板
jlass| | 2013-1-30 08:53 | 只看该作者
wofjvbn 发表于 2013-1-29 17:41
把while(1)去掉后可以打印,程序可以修改吗?

不好意思我看反了,当我没说。:L

使用特权

评论回复
5
pmp| | 2013-1-30 12:40 | 只看该作者
加个延时,试一试

使用特权

评论回复
6
pmp| | 2013-1-30 12:40 | 只看该作者
最好是加长一点

使用特权

评论回复
7
pmp| | 2013-1-30 12:40 | 只看该作者
看看什么效果

使用特权

评论回复
8
maztower| | 2013-1-31 09:26 | 只看该作者
孩子,printf的字符串没有加"\n"

使用特权

评论回复
9
maztower| | 2013-1-31 09:29 | 只看该作者
dsp的标准输出是有缓冲区的,当缓冲区没有满且printf的字符串不以"\n"结尾时是不会打印的,也就是说只有标准输出缓冲区满或者识别到控制符"\n"或者受到flush缓冲区信号才会在ccs里打印出字符

使用特权

评论回复
10
wofjvbn|  楼主 | 2013-4-6 16:22 | 只看该作者
非常感谢!

使用特权

评论回复
11
wofjvbn|  楼主 | 2013-4-6 16:23 | 只看该作者
maztower 发表于 2013-1-31 09:29
dsp的标准输出是有缓冲区的,当缓冲区没有满且printf的字符串不以"\n"结尾时是不会打印的,也就是说只有标 ...

非常感谢!!!:)

使用特权

评论回复
12
hczsea| | 2013-4-8 10:00 | 只看该作者
9楼正解,学习咯

使用特权

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

本版积分规则

1

主题

5

帖子

0

粉丝