OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4033|回复: 2

if (OSRunning == OS_STATE_OS_STOPPED)条件不成立

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2021-10-29
在线时间
7 小时
发表于 2021-11-24 10:50:17 | 显示全部楼层 |阅读模式
1金钱
if (OSRunning == OS_STATE_OS_STOPPED) 这个ucos的start的函数里面,发现这个if条件不成,if里面进不去应该改哪里让条件成立


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2021-10-29
在线时间
7 小时
 楼主| 发表于 2021-11-24 11:43:09 | 显示全部楼层
本帖最后由 18858597983 于 2021-11-24 16:33 编辑

#define START_TASK_PRIO        4
//任务堆栈大小
#define START_STK_SIZE         1024
//任务控制块
OS_TCB StartTaskTCB;
//任务堆栈
CPU_STK START_TASK_STK[START_STK_SIZE];
//任务函数
void start_task(void *p_arg);//-------创建开始任务

int main(void)
{
    OS_ERR err;
    CPU_SR_ALLOC();
   
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
    delay_init(168);        //延时初始化
    uart_init(9600);    //串口初始化波特率为115200
    uart4_init(9600);
    LED_Init();        //初始化与LED连接的硬件接口  




    //loramode_Init();
    LED0 = 0;
    LED1 = 0;
    ////AT24CXX_Init();
  //SystemData_Init();
    //IWDG_Init(IWDG_Prescaler_256,0x0FFF);
    ////g_Radio.Init(&stting);//初始化配置
   
   
      OSInit(&err);            //初始化UCOSIII
      OS_CRITICAL_ENTER();    //进入临界区
        OSTaskCreate((OS_TCB     * )&StartTaskTCB,        //任务控制块
                            (CPU_CHAR    * )"start task",         //任务名字
                            (OS_TASK_PTR )start_task,            //任务函数
                            (void        * )0,                                    //传递给任务函数的参数
                            (OS_PRIO      )START_TASK_PRIO,     //任务优先级
                            (CPU_STK   * )&START_TASK_STK[0],    //任务堆栈基地址
                            (CPU_STK_SIZE)START_STK_SIZE/10,    //任务堆栈深度限位
                            (CPU_STK_SIZE)START_STK_SIZE,        //任务堆栈大小
                            (OS_MSG_QTY  )0,                    //任务内部消息队列能够接收的最大消息数目,为0时禁止接收消息
                            (OS_TICK      )0,                    //当使能时间片轮转时的时间片长度,为0时为默认长度,
                            (void       * )0,                    //用户补充的存储区
                            (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, //任务选项
                            (OS_ERR     * )&err);                //存放该函数错误时的返回值
      OS_CRITICAL_EXIT();    //退出临界区                    
      OSStart(&err);      //开启UCOSIII                    

}

void start_task(void *p_arg)
{

    OS_ERR err;
    CPU_SR_ALLOC();
    p_arg = p_arg;
        printf("12311");
    CPU_Init();



程序如上,不是串口打印的问题波特率没问题,整个代码编译正确,帮我看看什么问题

回复

使用道具 举报

2

主题

592

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1458
金钱
1458
注册时间
2019-7-28
在线时间
137 小时
发表于 2021-11-24 18:35:06 | 显示全部楼层
帮顶   
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 03:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表