智能车制作

标题: k60下载时出问题了,求解答 [打印本页]

作者: ▓追梦﹏forever    时间: 2015-3-10 19:47
标题: k60下载时出问题了,求解答
有时候正在出数据我按下复位,咋就出现这东西了,并且数据也不会输出了,咋回事?一遇到这情况,每次按一下复位出现一段这东西,不会出数据。接线,串口设置啥的都没问题,不知道哪里弄错了
[attach]74935[/attach]
file:///D:\Tencent\Qq\1593392306\Image\C2C\(H_ZJTA$XUW81R4FU1YGIE3.png



作者: lucaschou    时间: 2015-3-12 10:15
程序初始化没做完,还没有跑到main程序,主要问题可能是UART有问题,你可以读写start.c 这个文件
作者: ▓追梦﹏forever    时间: 2015-3-12 12:06
lucaschou 发表于 2015-3-12 10:15
程序初始化没做完,还没有跑到main程序,主要问题可能是UART有问题,你可以读写start.c 这个文件

恩恩,谢谢大神,我再看看

作者: ▓追梦﹏forever    时间: 2015-3-12 18:19
lucaschou 发表于 2015-3-12 10:15
程序初始化没做完,还没有跑到main程序,主要问题可能是UART有问题,你可以读写start.c 这个文件

这是我的start.c,按你说的在进入main()之前出问题了,所以打印出那些东西,可是我还是看不明白问题在哪。。
void start(void)
{
    //#ifdef DEBUG
    /* 关闭看门狗 */
    wdog_disable();
    //#endif

    /* 复制中断向量表、初始化数据、以__ramfunc声明的子函数复制到RAM区 */
    common_startup();

    /* CPU初始化,设置频率 */
    sysinit();

#if (defined(DEBUG) && defined(DEBUG_PRINT))

    printf("\n\n\t\t野火kinetis核心板测试程序\n");
    printf("内核频率:%dMHz\t总线频率 :%dMHz\nflex频率:%dMHz \tflash频率:%dMHz\n\n", \
           core_clk_mhz, core_clk_mhz / (mcg_div.bus_div + 1), core_clk_mhz / (mcg_div.flex_div + 1), core_clk_mhz / (mcg_div.flash_div + 1));
    /* Determine the last cause(s) of reset */
    if (MC_SRSH & MC_SRSH_SW_MASK)
        printf("Software Reset\n");
    if (MC_SRSH & MC_SRSH_LOCKUP_MASK)
        printf("Core Lockup Event Reset\n");
    if (MC_SRSH & MC_SRSH_JTAG_MASK)
        printf("JTAG Reset\n");
    if (MC_SRSL & MC_SRSL_POR_MASK)
        printf("Power-on Reset\n");
    if (MC_SRSL & MC_SRSL_PIN_MASK)
        printf("External Pin Reset\n");
    if (MC_SRSL & MC_SRSL_COP_MASK)
        printf("Watchdog(COP) Reset\n");
    if (MC_SRSL & MC_SRSL_LOC_MASK)
        printf("Loss of Clock Reset\n");
    if (MC_SRSL & MC_SRSL_LVD_MASK)
        printf("Low-voltage Detect Reset\n");
    if (MC_SRSL & MC_SRSL_WAKEUP_MASK)
        printf("LLWU Reset\n");

    /* 这两个数组的地址 在  链接器Linker文件,即ICF文件 定义 */
    extern uint32 __VECTOR_TABLE[];
    extern uint32 __VECTOR_RAM[];

    /* 检测是否需要 复制中断向量表,即可以知道是ROM启动还是RAM启动*/
    printf("\n野火Kinetis开发板启动方式:");
    if (__VECTOR_RAM != __VECTOR_TABLE)     printf("flash启动\n");
    else                                    printf("SRAM启动\n");

    /* Determine specific Kinetis device and revision */
    cpu_identify();

#endif  //DUBUG && DEBUG_PRINT

    /* 跳进main函数 */
    main();

    /* 保证CPU不会停止执行 */
    while(1);
}


作者: lucaschou    时间: 2015-3-13 10:06
▓追梦﹏forever 发表于 2015-3-12 18:19
这是我的start.c,按你说的在进入main()之前出问题了,所以打印出那些东西,可是我还是看不明白问题在哪。 ...

#if (defined(DEBUG) && defined(DEBUG_PRINT))
将这个DEBUG_PRINT宏注释掉就行了

作者: ▓追梦﹏forever    时间: 2015-3-13 10:44
lucaschou 发表于 2015-3-13 10:06
#if (defined(DEBUG) && defined(DEBUG_PRINT))
将这个DEBUG_PRINT宏注释掉就行了

我把你说的注释掉了,其他地方没动,然后那段话在串口不会显示了,但是串口收不到任何数据。。。。[attach]75017[/attach]

作者: ▓追梦﹏forever    时间: 2015-3-13 11:17
lucaschou 发表于 2015-3-13 10:06
#if (defined(DEBUG) && defined(DEBUG_PRINT))
将这个DEBUG_PRINT宏注释掉就行了

刚才正常输出了4000多个数据,然后停止输出了,我按下复位,没有用





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2