OpenEdv-开源电子网

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

ucos 2邮箱问题

[复制链接]

5

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2013-5-3
在线时间
0 小时
发表于 2013-9-6 17:18:31 | 显示全部楼层 |阅读模式
我要实现往邮箱里面存数据 再取数据 然后通过串口发上电脑
不过在电脑上显示的都是    ...........  不管我改变存放邮箱的数据  在电脑上都是显示 点 ..... 

程序就2个任务,弄了一天没弄出来,求助攻- -

u=7  不管换什么数据 结果都是一样  邮箱操作不了





#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "includes.h"

//ALIENTEK战舰STM32开发板实验53
//UCOSII实验1-任务调度  
//技术支持:www.openedv.com
//广州市星翼电子科技有限公司    

/////////////////////////UCOSII任务堆栈设置///////////////////////////////////
//START 任务
//设置任务优先级
#define START_TASK_PRIO       10 //开始任务的优先级设置为最低
//设置任务堆栈大小
#define START_STK_SIZE   64
//创建任务堆栈空间
OS_STK START_TASK_STK[START_STK_SIZE];
//任务函数接口
void start_task(void *pdata);
    

//uart任务
//设置任务优先级
#define UART_TASK_PRIO      
//设置任务堆栈大小
#define UART_STK_SIZE       64
//创建任务堆栈空间
OS_STK UART_TASK_STK[UART_STK_SIZE];
//任务函数接口
void uart_task(void *pdata);


OS_EVENT *box;
int u=7;
 int main(void)
 {
delay_init();     //延时初始化  
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600);
box=OSMboxCreate((void *)0);         //建邮箱
OSMboxPost(box,&u);                         //往邮箱存数据
  OSInit();   
  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=0;
pdata = pdata; 
OSStatInit(); //初始化统计任务.这里会延时1秒钟左右
  OS_ENTER_CRITICAL(); //进入临界区(无法被中断打断)    
    OSTaskCreate(uart_task,(void *)0,(OS_STK*)&UART_TASK_STK[UART_STK_SIZE-1],UART_TASK_PRIO);
OSTaskSuspend(START_TASK_PRIO); //挂起起始任务.
OS_EXIT_CRITICAL(); //退出临界区(可以被中断打断)
}


void uart_task(void *pdata)
{
int *a;
u8 err;
while(1)
{
  a=OSMboxPend(box,10,&err);   // 在邮箱取数据
USART_SendData(USART1,(*a)+0x30);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=1);
delay_ms(1000);
}

}


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

使用道具 举报

5

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2013-5-3
在线时间
0 小时
 楼主| 发表于 2013-9-6 18:23:33 | 显示全部楼层
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-6 20:53:11 | 显示全部楼层
box=OSMboxCreate((void *)0);         //建邮箱
OSMboxPost(box,&u);                         //往邮箱存数据
这两行代码,放到OS开始运行以后吧,你这里ucosii还没开始运行呢....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2013-5-3
在线时间
0 小时
 楼主| 发表于 2013-9-8 10:13:48 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
谢谢了~~~
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-13 18:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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