OpenEdv-开源电子网

标题: STM32F407以太网例程问题 [打印本页]

作者: haojiege    时间: 2017-12-18 08:25
标题: STM32F407以太网例程问题
本帖最后由 haojiege 于 2017-12-18 08:39 编辑

我在原子哥的第十章lwip的TCP服务器实验中的例程里加了个AD采集的任务。单独运行时以太网没问题,AD也没问题。同时运行时只有以太网可以AD任务始终没运行,我AD任务的ucos优先级已经高于以太网的了,有没有人知道可能是哪里的原因?
int main(void)
{
         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC|RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE|RCC_AHB1Periph_GPIOF|RCC_AHB1Periph_GPIOG,ENABLE);
         delay_init(168);                              
         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);        
         mymem_init(SRAMIN);                             
         mymem_init(SRAMCCM);                                 
         CRC_ResetDR();                                   
        GPIO_AV_chance(1);                              
        AD7689_Init();                                 
        AD7689_Start();                                 
        uart_init(9600);                                   
         TIM2_CH124_Cap_Init(0xffff,0);                                                                                         
         OSInit();                                      
         while(lwip_comm_init())        
         {
                   printf("Lwip Init failed!");         
                   OSTimeDlyHMSM(0,0,0,500);  
         }
         printf("Lwip Init Success!");            
         while(tcp_server_init())                                             
         {
                   printf("TCP Server failed!!");  
                   OSTimeDlyHMSM(0,0,0,500);  
         }
         printf("TCP Server Success!");         
         OSTaskCreate(start_task,(void*)0,(OS_STK*)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO);
         OSStart();     
}
void start_task(void *pdata)
{
         OS_CPU_SR cpu_sr;
         pdata = pdata ;     
         OSStatInit();                              
         OS_ENTER_CRITICAL();      
#if LWIP_DHCP
         lwip_comm_dhcp_creat();   
#endif
OSTaskCreate(frequency_task,(void*)0,(OS_STK*)&FREQUENCY_TASK_STK[FREQUENCY_STK_SIZE-1],FREQUENCY_TASK_PRIO);
         OSTaskCreate(ad_task,(void*)0,(OS_STK*)&AD_TASK_STK[AD_STK_SIZE],AD_TASK_PRIO);
         OSTaskSuspend(OS_PRIO_SELF);
         OS_EXIT_CRITICAL();  
}

作者: zuozhongkai    时间: 2017-12-18 08:25
检查你的AD任务是否创建成功
作者: haojiege    时间: 2017-12-18 16:08
zuozhongkai 发表于 2017-12-18 09:53
检查你的AD任务是否创建成功

版主,已经创建成功了,我在以太网里显示了下创建错误代码,返回创建正常。是不是以太网的任务是单独自己创建的或者里面有更高优先级的子程序?请赐教
作者: haojiege    时间: 2017-12-19 10:34
谢谢版主,问题找到了,还是版主说的对,任务没正常创建,有一个任务的优先级和系统的冲突了




欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/) Powered by Discuz! X3.4