OpenEdv-开源电子网

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

STM32F1 UCOS开发手册v1.0的16页

[复制链接]

3

主题

17

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-5
在线时间
1 小时
发表于 2015-8-7 16:22:19 | 显示全部楼层 |阅读模式
坚持
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-8-7 16:40:24 | 显示全部楼层



这个你粘贴上原函数才能说明问题,手头上只有F4的函数,应该和F1的一样吧,它本来就是带参数的
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

3

主题

17

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-5
在线时间
1 小时
 楼主| 发表于 2015-8-7 16:43:24 | 显示全部楼层
回复【2楼】龙之谷:
---------------------------------
我按照书上的代码打的。然后就那边出错了。
坚持
回复 支持 反对

使用道具 举报

3

主题

17

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-5
在线时间
1 小时
 楼主| 发表于 2015-8-7 16:46:13 | 显示全部楼层
[mw_shl_code=c,true]#include "sys.h" #include "delay.h" #include "led.h" #include "includes.h" #define START_TASK_PRIO 10 #define START_STK_SIZE 128 OS_STK START_TASK_STK[START_STK_SIZE]; void start_task(void *pdata); #define LED0_TASK_PRIO 7 #define LED0_STK_SIZE 64 OS_STK LED0_TASK_STK[LED0_STK_SIZE]; void led0_task(void *pdata); #define LED1_TASK_PRIO 6 #define LED1_STK_SIZE 128 OS_STK LED1_TASK_STK[LED1_STK_SIZE]; void led1_task(void *pdata); #define FLOAT_TASK_PRIO 5 #define FLOAT_STK_SIZE 128 __align(8)OS_STK FLOAT_TASK_STK[FLOAT_STK_SIZE]; void float_task(void *pdata); int main(void) { delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); uart_init(115200); LED_Init(); 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(); OS_ENTER_CRITICAL(); OSTaskCreate(led0_task,(void *)0,(OS_STK*)&LED0_TASK_STK[LED0_STK_SIZE-1],LED0_TASK_PRIO); OSTaskCreate(led1_task,(void *)0,(OS_STK*)&LED1_TASK_STK[LED0_STK_SIZE-1],LED1_TASK_PRIO); OSTaskCreate(float_task,(void *)0,(OS_STK*)&FLOAT_TASK_STK[LED0_STK_SIZE-1],FLOAT_TASK_PRIO); OSTaskSuspend(START_TASK_PRIO); OS_EXIT_CRITICAL(); } void led0_task(void *pdata) { while(1) {LED0=0; delay_ms(80); LED0=1; delay_ms (400); }; } void led1_task(void *pdata) { while(1) {LED1=0; delay_ms(300); LED1=1; delay_ms (300); }; } void float_task(void *pdata) { OS_CPU_SR cpu_sr=0; static float float_num=0.01; while(1) { float_num+=0.01f; OS_ENTER_CRITICAL(); printf("float_num的值为%.4f\n",float_num); OS_EXIT_CRITICAL(); delay_ms(500); } }[/mw_shl_code]

坚持
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-8-7 16:53:32 | 显示全部楼层
粘贴 delay_init()函数原型
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

3

主题

17

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-5
在线时间
1 小时
 楼主| 发表于 2015-8-7 16:58:14 | 显示全部楼层
回复【5楼】龙之谷:
---------------------------------
void delay_init()
{
#if SYSTEM_SUPPORT_OS   //如果需要支持OS.
u32 reload;
#endif
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //选择外部时钟  HCLK/8
fac_us=SystemCoreClock/8000000; //为系统时钟的1/8  
#if SYSTEM_SUPPORT_OS   //如果需要支持OS.
reload=SystemCoreClock/8000000; //每秒钟的计数次数 单位为K    
reload*=1000000/delay_ostickspersec; //根据delay_tickspersec设定溢出时间
//reload为24位寄存器,最大值:16777216,在72M下,约合1.86s左右
fac_ms=1000/delay_ostickspersec; //代表OS可以延时的最少单位    

SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk;    //开启SYSTICK中断
SysTick->LOAD=reload;  //每1/os_delay_tickspersec秒中断一次
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;    //开启SYSTICK    

#else
fac_ms=(u16)fac_us*1000; //非OS下,代表每个ms需要的systick时钟数   
#endif
}
坚持
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-8-7 17:03:20 | 显示全部楼层
回复【6楼】鲁蠱:
---------------------------------
没带参数,那确实应该delay_init();
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

3

主题

17

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-5
在线时间
1 小时
 楼主| 发表于 2015-8-7 17:06:48 | 显示全部楼层
回复【7楼】龙之谷:
---------------------------------
恩恩。可能版本不一样吧。谢谢。
坚持
回复 支持 反对

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-8-7 18:41:51 | 显示全部楼层
您好,这个是UCOS例程中的SYSTEM文件夹的代码不同,并没有打错,最新版的STM32F1教程已经出来了,修改了以前的一些bug,你下载最新版的教程看看,如果还是错误的话在论坛发帖我们再修改,下载地址http://pan.baidu.com/s/1jGAaa0Y
开往春天的手扶拖拉机
回复 支持 反对

使用道具 举报

3

主题

17

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-5
在线时间
1 小时
 楼主| 发表于 2015-8-10 09:43:54 | 显示全部楼层
回复【9楼】zuozhongkai:
---------------------------------
好的。谢谢
坚持
回复 支持 反对

使用道具 举报

50

主题

134

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2014-5-21
在线时间
84 小时
发表于 2016-3-4 23:35:12 | 显示全部楼层
zuozhongkai 发表于 2015-8-7 18:41
您好,这个是UCOS例程中的SYSTEM文件夹的代码不同,并没有打错,最新版的STM32F1教程已经出来了,修改了以 ...

这个手册下载不了了,不晓得是怎么回事。可否再来一个连接
回复 支持 反对

使用道具 举报

50

主题

134

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
358
金钱
358
注册时间
2014-5-21
在线时间
84 小时
发表于 2016-3-5 01:23:56 | 显示全部楼层
可否发我一个手册
回复 支持 反对

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-3-5 11:15:56 | 显示全部楼层
开往春天的手扶拖拉机
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-1 18:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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