DSP printf问题

[复制链接]
4728|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
pmp 发表于 2013-1-30 12:40 | 显示全部楼层
加个延时,试一试
pmp 发表于 2013-1-30 12:40 | 显示全部楼层
最好是加长一点
pmp 发表于 2013-1-30 12:40 | 显示全部楼层
看看什么效果
maztower 发表于 2013-1-31 09:26 | 显示全部楼层
孩子,printf的字符串没有加"\n"
maztower 发表于 2013-1-31 09:29 | 显示全部楼层
dsp的标准输出是有缓冲区的,当缓冲区没有满且printf的字符串不以"\n"结尾时是不会打印的,也就是说只有标准输出缓冲区满或者识别到控制符"\n"或者受到flush缓冲区信号才会在ccs里打印出字符
 楼主| wofjvbn 发表于 2013-4-6 16:22 | 显示全部楼层
非常感谢!
 楼主| wofjvbn 发表于 2013-4-6 16:23 | 显示全部楼层
maztower 发表于 2013-1-31 09:29
dsp的标准输出是有缓冲区的,当缓冲区没有满且printf的字符串不以"\n"结尾时是不会打印的,也就是说只有标 ...

非常感谢!!!:)
hczsea 发表于 2013-4-8 10:00 | 显示全部楼层
9楼正解,学习咯
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部