用了SysTick_Config 不知道在哪卡死了

2019-08-14 17:14发布

//主函数大概是#include "stm32f10x.h"
#include "usart.h"
#include <stdio.h>

__IO u8 Flag_KEY;


int main(void)
{
        Usart_Init(4800);
        SysTick_Config(SystemCoreClock/1000);
        while (1)
        {       
                printf(" I am in while loop ");
                        if (Flag_KEY)
                        {
                                printf(" I am in the if loop ");
                                Flag_KEY = 0;
                        }

}

//中断处理函数
extern __IO u8 Flag_KEY;
void SysTick_Handler(void)
{
        static __IO u8 Flag_KEY_temp;

        printf(" I am in IRQ ");
        if(++Flag_KEY_temp >= 40)
        {
                Flag_KEY_temp = 0;
                Flag_KEY = 1;
                printf(" Flag key = 1 ");
        }

}




下载到板子里值打开串口 只接收到I am in IRQ, Flag key =1, 求帮我看下在哪里出了问题
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
Zapateado
1楼-- · 2019-08-14 18:29
弄好了 原因好像是SysTick_Handler与Printf相性不大好
要用printf的话 把if(++Flag_KEY_temp >= 40) 这里改大点 例如改成if(++Flag_KEY_temp >= 400)
或者直接不在SysTick_Handler里用Printf函数
Zapateado
2楼-- · 2019-08-15 00:16
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-08-15 04:00
仿真

一周热门 更多>