junjunshaoguo 发表于 2013-12-23 16:34:11

关于STM32F0移植的UCOSII信号量使用问题

 本人初用UCOSII,用的大神移植好的COSII,建立单个任务可以使用,现在在用到信号量,用于一个任务触发另外一个任务的时候,遇到问题,下面是源码,希望大神有时间给指导一下,我想做的就是第二个任务也就是LED2闪烁的任务,通过一个信号量来触发,现在是我没发那个信号量就执行了第二个任务,请指导下。

dzc2001 发表于 2013-12-24 20:09:46

回复:关于STM32F0移植的UCOSII信号量使用问题

 我都是用全局变量来代替这个功能的,这样程序看上去更清晰点

Hiker 发表于 2013-12-24 23:59:00

RE:关于STM32F0移植的UCOSII信号量使用问题

代码中没有看到,建立信号量~就直接使用了。

junjunshaoguo 发表于 2013-12-25 09:52:05

RE:关于STM32F0移植的UCOSII信号量使用问题

信号量的创建在主函数里有啊ledd=OSSemCreate (0);

junjunshaoguo 发表于 2013-12-25 09:53:40

回复:关于STM32F0移植的UCOSII信号量使用问题

回复第 2 楼 于2013-12-24 20:09:46发表:
 我都是用全局变量来代替这个功能的,这样程序看上去更清晰点
 
那另一个的触发任务用标志位传递吗?
 

看起来很黑 发表于 2013-12-26 08:57:19

回复:关于STM32F0移植的UCOSII信号量使用问题

 可以用标志位传递

fengye5340 发表于 2013-12-26 09:20:26

RE:关于STM32F0移植的UCOSII信号量使用问题

看了楼主的程序,有三点:
1、INT8U os_err; 这个变量有局部也有全局变量,最好统一,
比如都用局部变量,在任务1、2中,都定义这个局部变量。
2、 OSSemPend (ledd,5,&err);这个等待时间修改为0
也即 OSSemPend (ledd,0,&err);
3、同时,把OSSemCreate (0);修改为OSSemCreate (1);

junjunshaoguo 发表于 2013-12-26 12:22:54

回复:关于STM32F0移植的UCOSII信号量使用问题

回复第 7 楼 于2013-12-26 09:20:26发表:
看了楼主的程序,有三点:
1、INT8U os_err; 这个变量有局部也有全局变量,最好统一,
比如都用局部变量,在任务1、2中,都定义这个局部变量。
2、 OSSemPend (ledd,5,&err);这个等待时间修改为0
也即 OSSemPend (ledd,0,&err);
3、同时,把OSSemCreate (0);修改为OSSemCreate (1);
你好,规范了下程序 把变量统一了下,第二点和第三点都修改了,但还是我没发那个信号量就进第二个任务里啊,还请明示,下面该怎么找原因啊。
 

wkuang 发表于 2013-12-27 22:03:18

RE:关于STM32F0移植的UCOSII信号量使用问题

关于uCOS信号量,你创建了,但是不一定创建成功了。 你创建完后没有检查是否创建成功。 我看你的信号量没有创建成功。
检查下吧。 ledd=OSSemCreate (0);
看到这儿帖子,还有几点想说的:
遇上问题,不要把整个工程都摆上来, 把关键点贴上即可。还加压缩包,没有多少人有很好的耐心。

温柔的武士刀 发表于 2013-12-29 20:19:24

回复:关于STM32F0移植的UCOSII信号量使用问题

给个代码看看:
页: [1] 2
查看完整版本: 关于STM32F0移植的UCOSII信号量使用问题