151 lines
4.5 KiB
C
151 lines
4.5 KiB
C
|
/**
|
|||
|
*********************************************************************
|
|||
|
* @file main.c
|
|||
|
* @author fire
|
|||
|
* @version V1.0
|
|||
|
* @date 2018-xx-xx
|
|||
|
* @brief RT-Thread 3.0 + STM32 <EFBFBD>̹߳<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*********************************************************************
|
|||
|
* @attention
|
|||
|
*
|
|||
|
* ʵ<EFBFBD><EFBFBD>ƽ̨:Ұ<EFBFBD><EFBFBD> H743<EFBFBD><EFBFBD>ս<EFBFBD><EFBFBD>STM32 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD>̳ :http://www.firebbs.cn
|
|||
|
* <EFBFBD>Ա<EFBFBD> :https://fire-stm32.taobao.com
|
|||
|
*
|
|||
|
**********************************************************************
|
|||
|
*/
|
|||
|
|
|||
|
/*
|
|||
|
*************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
|
|||
|
*************************************************************************
|
|||
|
*/
|
|||
|
#include "board.h"
|
|||
|
#include "rtthread.h"
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
*************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*************************************************************************
|
|||
|
*/
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>߳̿<DFB3><CCBF>ƿ<EFBFBD> */
|
|||
|
static rt_thread_t led1_thread = RT_NULL;
|
|||
|
static rt_thread_t key_thread = RT_NULL;
|
|||
|
/*
|
|||
|
*************************************************************************
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*************************************************************************
|
|||
|
*/
|
|||
|
static void led1_thread_entry(void* parameter);
|
|||
|
static void key_thread_entry(void* parameter);
|
|||
|
|
|||
|
/*
|
|||
|
*************************************************************************
|
|||
|
* main <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*************************************************************************
|
|||
|
*/
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param <EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
int main(void)
|
|||
|
{
|
|||
|
/*
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>RTTϵͳ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD>main<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>component.c<EFBFBD>ļ<EFBFBD><EFBFBD>е<EFBFBD>rtthread_startup()<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>main<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>ֻ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺߳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼߳<EFBFBD><EFBFBD>ɡ<EFBFBD>
|
|||
|
*/
|
|||
|
rt_kprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>[Ұ<><D2B0>]-STM32H743-<2D><>ս<EFBFBD><D5BD>RTT<54>̹߳<DFB3><CCB9><EFBFBD>ʵ<EFBFBD>飡\n\n");
|
|||
|
rt_kprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>K1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣߳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>K2<EFBFBD>ָ<EFBFBD><EFBFBD>߳<EFBFBD>\n");
|
|||
|
led1_thread = /* <20>߳̿<DFB3><CCBF>ƿ<EFBFBD>ָ<EFBFBD><D6B8> */
|
|||
|
rt_thread_create( "led1", /* <20>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
led1_thread_entry, /* <20>߳<EFBFBD><DFB3><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD> */
|
|||
|
RT_NULL, /* <20>߳<EFBFBD><DFB3><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
512, /* <20>߳<EFBFBD>ջ<EFBFBD><D5BB>С */
|
|||
|
3, /* <20>̵߳<DFB3><CCB5><EFBFBD><EFBFBD>ȼ<EFBFBD> */
|
|||
|
20); /* <20>߳<EFBFBD>ʱ<EFBFBD><CAB1>Ƭ */
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>̣߳<DFB3><CCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
if (led1_thread != RT_NULL)
|
|||
|
rt_thread_startup(led1_thread);
|
|||
|
else
|
|||
|
return -1;
|
|||
|
|
|||
|
key_thread = /* <20>߳̿<DFB3><CCBF>ƿ<EFBFBD>ָ<EFBFBD><D6B8> */
|
|||
|
rt_thread_create( "key", /* <20>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
key_thread_entry, /* <20>߳<EFBFBD><DFB3><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD> */
|
|||
|
RT_NULL, /* <20>߳<EFBFBD><DFB3><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
512, /* <20>߳<EFBFBD>ջ<EFBFBD><D5BB>С */
|
|||
|
2, /* <20>̵߳<DFB3><CCB5><EFBFBD><EFBFBD>ȼ<EFBFBD> */
|
|||
|
20); /* <20>߳<EFBFBD>ʱ<EFBFBD><CAB1>Ƭ */
|
|||
|
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>̣߳<DFB3><CCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
if (key_thread != RT_NULL)
|
|||
|
rt_thread_startup(key_thread);
|
|||
|
else
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
*************************************************************************
|
|||
|
* <EFBFBD>̶߳<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*************************************************************************
|
|||
|
*/
|
|||
|
|
|||
|
static void led1_thread_entry(void* parameter)
|
|||
|
{
|
|||
|
|
|||
|
while (1)
|
|||
|
{
|
|||
|
LED1_ON;
|
|||
|
rt_thread_delay(500); /* <20><>ʱ500<30><30>tick */
|
|||
|
rt_kprintf("led1_thread running,LED1_ON\r\n");
|
|||
|
|
|||
|
LED1_OFF;
|
|||
|
rt_thread_delay(500); /* <20><>ʱ500<30><30>tick */
|
|||
|
rt_kprintf("led1_thread running,LED1_OFF\r\n");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
static void key_thread_entry(void* parameter)
|
|||
|
{
|
|||
|
rt_err_t uwRet = RT_EOK;
|
|||
|
while (1)
|
|||
|
{
|
|||
|
if( Key_Scan(KEY1_GPIO_PORT,KEY1_PIN) == KEY_ON )/* K1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
{
|
|||
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>LED1<EFBFBD>̣߳<EFBFBD>\n");
|
|||
|
uwRet = rt_thread_suspend(led1_thread);/* <20><><EFBFBD><EFBFBD>LED1<44>߳<EFBFBD> */
|
|||
|
if(RT_EOK == uwRet)
|
|||
|
{
|
|||
|
rt_kprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>LED1<EFBFBD>̳߳ɹ<EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
rt_kprintf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>LED1<EFBFBD>߳<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>ʧ<EFBFBD>ܴ<EFBFBD><EFBFBD>룺0x%lx\n",uwRet);
|
|||
|
}
|
|||
|
}
|
|||
|
if( Key_Scan(KEY2_GPIO_PORT,KEY2_PIN) == KEY_ON )/* K1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
{
|
|||
|
printf("<EFBFBD>ָ<EFBFBD>LED1<EFBFBD>̣߳<EFBFBD>\n");
|
|||
|
uwRet = rt_thread_resume(led1_thread);/* <20>ָ<EFBFBD>LED1<44>̣߳<DFB3> */
|
|||
|
if(RT_EOK == uwRet)
|
|||
|
{
|
|||
|
rt_kprintf("<EFBFBD>ָ<EFBFBD>LED1<EFBFBD>̳߳ɹ<EFBFBD><EFBFBD><EFBFBD>\n");
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
rt_kprintf("<EFBFBD>ָ<EFBFBD>LED1<EFBFBD>߳<EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>ʧ<EFBFBD>ܴ<EFBFBD><EFBFBD>룺0x%lx\n",uwRet);
|
|||
|
}
|
|||
|
}
|
|||
|
rt_thread_delay(20);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/********************************END OF FILE****************************/
|