闪灯程序运行不正常

发布于 2020-06-20 11:31:16
为什么一个简单的闪灯程序运行不正常,编译成功LED就是不闪,但主线程是正常的
/*
* Copyright (c) 2006-2020, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2020-05-15 RT-Thread first version
*/

#include
#include
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include

#include "drv_common.h"
#define THREAD_PRIORITY 10
#define THREAD_STACK_SIZE 256
#define THREAD_TIMESLICE 5
#define LED_PIN GET_PIN(B, 6)
/* 使用静态线程时,线程的栈需要设置字节对齐 */
ALIGN(RT_ALIGN_SIZE)
static rt_uint8_t thread_stack[THREAD_STACK_SIZE];
static struct rt_thread tid1;
static void thread1_entry(void *parameter)
{

rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);

while (1)
{

rt_pin_write(LED_PIN, PIN_LOW);
rt_thread_mdelay(300);
rt_pin_write(LED_PIN, PIN_HIGH);


}
}

int thread_led(void)
{
/* 静态创建线程 */

/* 初始化线程 1,名称是 thread1,入口是 thread1_entry*/
rt_thread_init( &tid1,
"LED_SHOW",
thread1_entry,
RT_NULL,
thread_stack,
THREAD_STACK_SIZE,
THREAD_PRIORITY,
THREAD_TIMESLICE
);
/* 启动线程 */
rt_thread_startup(&tid1);

return 0;
}



int main(void)
{
int count = 30;
thread_led();
while (count--)
{
LOG_D("Hello RT-Thread!");
rt_thread_mdelay(1000);
}

return RT_EOK;
}
RT-Thread Studio

版本: 1.1.0
构建ID: 202005291500

使用完整版4.0.2建的工程,stm32f103rct6,uart5作为控制台输出,st-link调试。自己的开板子裸机试过电路没问题

查看更多

关注者
0
被浏览
127
3 个回答
bernard
bernard 2020-06-20
LED的GPIO定义是否正确,可以和你的裸机版对比下。以及,你也可以单步下led任务的代码,看看pin操作是否正确
KJUS_6193
KJUS_6193 2020-06-20
可以了,最后延时一下
    while (1)
{

rt_pin_write(LED_PIN, PIN_LOW);
rt_thread_mdelay(300);
rt_pin_write(LED_PIN, PIN_HIGH);
rt_thread_mdelay(300);


}

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友