卡在 delay_ms()函数

2019-08-14 00:22发布

本帖最后由 neuangel 于 2017-7-20 09:24 编辑

int main(void)
{        
        signed char t;
        float v,temp_v,pro=0;
        float temperature,sd_size;
        u8 sd_gets[200];
        u8 temp,i,j;
        u8 direaction=1;
        u16 cnt;
        u8 mask=0;
        u16 ledpwm=0;
        u32 total,free;
        u8 USART2_TX_BUF[USART_TX_LENGHT]={0};
        u16 filesize;
        u16 adcx;
        
        delay_init();
        NVIC_Configuration();
        
        Usart_Init(115200);
        Usart2_Init(9600);
        Usart3_Init(115200);
        
        TIM6_Int_Init(99,7199);        //10ms        
        timer3_Init(4999,7199);//500 ms
        TIM5_PWM_Init(899,0);//72M/9000=8khz  
        TIM4_PWM_Init(7199,0);//72M/7200=10khz        

        sim900a_gpio_init();
        mem_init(SRAMIN);                //初始化内部内存池        
        exfuns_init();                //外部函数

        SD_CS=0;

        delay_ms(10);
/////////////////////////////////////////////////////////////////////////////////////////////////////
/*
void delay_ms(u16 nms)
{                                    
        u32 temp;                  
        SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit)
        SysTick->VAL =0x00;           //清空计数器
        SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;          //开始倒数  
        do
        {
                temp=SysTick->CTRL;            //************************************  运行到delay_ms()函数后就卡在这一步,过不去了
        }
        while(temp&0x01&&!(temp&(1<<16)));//等待时间到达   
        SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;       //关闭计数器
        SysTick->VAL =0X00;       //清空计数器                     
}
#endif

*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        sim900_tcp_init();

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
neuangel
1楼-- · 2019-08-14 05:14
 精彩回答 2  元偷偷看……
neuangel
2楼-- · 2019-08-14 08:53
本帖最后由 neuangel 于 2017-7-20 09:27 编辑

最开始先将 delay_init()函数初始化,之前写的程序也没问题,这次在测试sim900a时,加入delay_init()就会死循环,卡在 temp=SysTick->CTRL;  这一步,求大神给看看,没招了

delay_init(10)是我专门为测试加了一句代码,之前debug后就是卡在延时函数这里,加入后卡死了
wxjhby
3楼-- · 2019-08-14 10:01
这个延时函数一般是没问题的,可以试试把 delay_init()初始化函数放到不同位置试试
neuangel
4楼-- · 2019-08-14 14:12
已经试了n次了,楼上的,不过还是谢谢
neuangel
5楼-- · 2019-08-14 14:54
换了一套最简单的串口接收发送程序,只要有delay_ms()函数就会卡在同一个地方,是不是片子坏了
正点原子
6楼-- · 2019-08-14 15:12
 精彩回答 2  元偷偷看……

一周热门 更多>