RT-Thread论坛
直播中

钱一辰

8年用户 1037经验值
私信 关注
[问答]

线程问题,线程已经创建成功了,为什么线程调用的函数不会运行呢?

我这个线程创建成功了,为啥ai_thread_entry()函数不运行呢?

  • void airun_thread()
  • {
  •     /* 创建 serial 线程 */
  •     rt_thread_t thread = rt_thread_create("ai", ai_thread_entry, RT_NULL, 1024, 28, 30);

  •     /* 创建成功则启动线程 */
  •     if (thread != RT_NULL)
  •     {
  •         rt_pin_write(LED2,PIN_LOW);
  •         rt_thread_startup(thread);
  •     }
  • }


  • void ai_thread_entry(void *param)
  • {

  •     while(1)
  •     {
  •         PT1=getaibyChanel(ADC_DEV_NAME0,0);
  •         PT2=getaibyChanel(ADC_DEV_NAME0,1);
  •         PT3=getaibyChanel(ADC_DEV_NAME0,2);
  •         PT4=getaibyChanel(ADC_DEV_NAME0,3);
  •         //临时方案,关闭AD通道,设置为普通输入通道
  •         rt_pin_mode(GET_PIN(A, 0), PIN_MODE_INPUT);
  •         rt_pin_mode(GET_PIN(A, 1), PIN_MODE_INPUT);
  •         rt_pin_mode(GET_PIN(A, 2), PIN_MODE_INPUT);
  •         rt_pin_mode(GET_PIN(A, 3), PIN_MODE_INPUT);

  •         AI1=getaibyChanel(ADC_DEV_NAME1,4);
  •         AI2=getaibyChanel(ADC_DEV_NAME1,5);
  •         AI3=getaibyChanel(ADC_DEV_NAME1,6);
  •         //AI4=getaibyChanel(ADC_DEV_NAME0,7);

  •         PT1old=getPToldValue(PT1);//2.8432875
  •         PT2old=getPToldValue(PT2);
  •         PT3old=getPToldValue(PT3);
  •         PT4old=getPToldValue(PT4);

  •         rt_uint16_t u1=0.254767386299465*PT1old-55.8156683028539;
  •         rt_uint16_t u2=0.254767386299465*PT2old-55.8156683028539;


  •         AI1old=AI1/4;
  •         AI2old=AI2/4;
  •         AI3old=AI3/4;
  •         rt_pin_write(LED3,PIN_LOW);
  •         rt_thread_mdelay(500);
  •     }
  • }


下载调试的时候现象是LED2正常亮 LED3不会亮,调试的时候不管断点在void ai_thread_entry(void *param)函数的任意位置 都执行不到,求大佬们解答


更多回帖

发帖
×
20
完善资料,
赚取积分