OpenEdv-开源电子网

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

uCOS在串口接收字符串输入任务出不来

[复制链接]

4

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2017-12-24
在线时间
40 小时
发表于 2018-11-19 20:32:00 | 显示全部楼层 |阅读模式
2金钱
int str_comparison(unsigned char *str, unsigned char* str_ed)
{
        int flag = 0;
       
        //unsigned char* buf=str;

        do{
                if(*str != *str_ed){
                        flag = 1;
                        break;
                }
                str++;
                str_ed++;
        }
        while(*str != '\0');
                USART1_send_str("str_comp#");                               
                USART1_send_str(str);                       
        return flag;

}
void usart_task(void *pdata)
{                
        unsigned char buf[10];
        int flag=0;
        printf("welcome!!\n");
        printf("Send something to STM32F4!\n");
       
        while(1)
        {
                        get(buf);       
                        if(str_comparison(buf,"A")==0)
                        {
                                //USART1_send_str("A suspend\n");
                                OSTaskSuspend(5);       
                                USART1_send_str("suspend#A");
                        }
                        else if(str_comparison(buf,"F")==0)
                        {       
                                //USART1_send_str("F resume\n");
                                OSTaskResume(5);
                                USART1_send_str("resume#F");
                        }       
        }       

}

void test_task(void *pdata)
{          
       
        while(1)
        {
                                       
                LED1=!LED1;       
                delay_ms(300);
        }
}


test_task 优先级为5 usart_task优先级为6
问题是 除了第一次接收可以 正常挂起恢复优先级为5任务之外 下一次接收就一直在串口接收任务 控制不了LED灯任务
经测试
第一次接收 正常输出  Asuspend#Astr_comp#A 进得去 OSTaskSuspend(5);或者OSTaskResume(5);
第二次 输出的是  Astr_comp#Astr_comp#A      进不去 OSTaskSuspend(5);或者OSTaskResume(5);
之后几次都是和第二次一样
哪位前辈可以指教一下小弟啊!!

接收字符串.rar

4.03 MB, 下载次数: 18

最佳答案

查看完整内容[请看2#楼]

问题解决啦~~ 其实是在 uasrt.c里 我写了 两种格式的接收函数 一种是 接收时要按回车键 一种是不需要 然后 原子的XCOM 里输入回车是接收不了的,不需要回车的版本能在XCOM里正常跑 换了 DNW 输入回车 不需要回车的 两个就都能正常跑啦 (PS: 有需要串口接收输入的吗? 有需要可以留言 人多就开分享帖哈 )
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2017-12-24
在线时间
40 小时
 楼主| 发表于 2018-11-19 20:32:01 | 显示全部楼层
问题解决啦~~
其实是在 uasrt.c里
我写了 两种格式的接收函数
一种是 接收时要按回车键
一种是不需要
然后 原子的XCOM 里输入回车是接收不了的,不需要回车的版本能在XCOM里正常跑
换了 DNW 输入回车 不需要回车的 两个就都能正常跑啦
(PS: 有需要串口接收输入的吗? 有需要可以留言 人多就开分享帖哈 )


图片1.png
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-11-20 02:08:53 | 显示全部楼层
帮顶
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-26 00:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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