OpenEdv-开源电子网
标题:
(求解)裸奔跑马灯现象和加载了RT Thread 3.1.3 Kernel后不一样
[打印本页]
作者:
ifeng90
时间:
2020-5-26 17:38
标题:
(求解)裸奔跑马灯现象和加载了RT Thread 3.1.3 Kernel后不一样
本人STM32新手,从朋友那里拿了一块正点原子的 STM32F103ET6精英版开发板,下载了配套的跑马灯Hex到开发板之后,DS0和DS1交替闪烁,频率相同;
但是加载了RT Thread 3.1.3 Kernel后, DS0闪烁快,DS1闪烁慢,和裸奔跑马灯现象不一样,有哪位道友能解答一下我的疑惑吗?
作者:
ifeng90
时间:
2020-5-26 17:43
加载Kernel过程参考了附件《正点原子-RT-Thread 环境快速搭建入门教程.pdf》
作者:
ifeng90
时间:
2020-5-26 17:44
main.c 代码如下:
#include "sys.h"
#include "led.h"
#include <rtthread.h>
static struct rt_thread led0_thread;//线程控制块
static struct rt_thread led1_thread;//线程控制块
ALIGN(RT_ALIGN_SIZE)
static rt_uint8_t rt_led0_thread_stack[1024];//线程栈
static rt_uint8_t rt_led1_thread_stack[1024];//线程栈
//线程 LED0
static void led0_thread_entry(void* parameter)
{
while(1)
{
LED0=0;
rt_thread_delay(RT_TICK_PER_SECOND/5); //延时
LED0=1;
rt_thread_delay(RT_TICK_PER_SECOND/5); //延时
}
}
//线程 LED1
static void led1_thread_entry(void* parameter)
{
while(1)
{
LED1=0;
rt_thread_delay(RT_TICK_PER_SECOND/2); //延时
LED1=1;
rt_thread_delay(RT_TICK_PER_SECOND/2); //延时
}
}
int main(void)
{
LED_Init(); //初始化 LED
// 创建静态线程
rt_thread_init(&led0_thread,
"led0",
led0_thread_entry,
RT_NULL,
&rt_led0_thread_stack[0],
sizeof(rt_led0_thread_stack),
3,
20);
rt_thread_startup(&led0_thread);
rt_thread_init(&led1_thread,
"led1",
led1_thread_entry,
RT_NULL,
&rt_led1_thread_stack[0],
sizeof(rt_led1_thread_stack),
3,
20);
rt_thread_startup(&led1_thread);
}
复制代码
作者:
ifeng90
时间:
2020-5-26 17:47
另外,在MDK 中对于RT Thread的头文件显示找不到,但是编译是能通过的...
作者:
ifeng90
时间:
2020-5-26 17:56
仔细研究了一下main.c,改了一下两个LED线程函数解决了...
作者:
BG4RFF
时间:
2020-7-17 08:31
一个2一个5当然不一样的啊
欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/)
Powered by Discuz! X3.4