led_matrix 网上做法没反应
This commit is contained in:
parent
aa2198583e
commit
6cc3aa9d72
3
.vscode/c_cpp_properties.json
vendored
3
.vscode/c_cpp_properties.json
vendored
@ -422,8 +422,7 @@
|
||||
"d:\\src",
|
||||
"d:\\src\\klibc",
|
||||
"d:\\Develop\\libraries\\STM32F4xx_HAL\\STM32F4xx_HAL_Driver\\Src",
|
||||
"d:\\Develop\\libraries\\STM32F4xx_HAL\\CMSIS\\Device\\ST\\STM32F4xx\\Source\\Templates",
|
||||
"${workspaceFolder}/packages/aht10-latest/inc"
|
||||
"d:\\Develop\\libraries\\STM32F4xx_HAL\\CMSIS\\Device\\ST\\STM32F4xx\\Source\\Templates"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
4
.vscode/keil-assistant.log
vendored
4
.vscode/keil-assistant.log
vendored
@ -10,3 +10,7 @@
|
||||
|
||||
[info] Log at : 2024/12/21|11:55:44|GMT+0800
|
||||
|
||||
[info] Log at : 2024/12/23|18:21:06|GMT+0800
|
||||
|
||||
[info] Log at : 2025/1/16|15:40:17|GMT+0800
|
||||
|
||||
|
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@ -23,7 +23,9 @@
|
||||
"stdio.h": "c",
|
||||
"rtatomic.h": "c",
|
||||
"time.h": "c",
|
||||
"icmp.h": "c"
|
||||
"icmp.h": "c",
|
||||
"rgb.h": "c",
|
||||
"main.h": "c"
|
||||
},
|
||||
// "cortex-debug.openocdPath": "d:/Develop/"
|
||||
}
|
@ -250,7 +250,7 @@ ProjectManager.ToolChainLocation=
|
||||
ProjectManager.UAScriptAfterPath=
|
||||
ProjectManager.UAScriptBeforePath=
|
||||
ProjectManager.UnderRoot=false
|
||||
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_IWDG_Init-IWDG-false-HAL-true,6-MX_TIM14_Init-TIM14-false-HAL-true,7-MX_TIM13_Init-TIM13-false-HAL-true,8-MX_TIM11_Init-TIM11-false-HAL-true,9-MX_SDIO_SD_Init-SDIO-false-HAL-true,10-MX_TIM2_Init-TIM2-false-HAL-true,11-MX_SPI2_Init-SPI2-false-HAL-true,12-MX_TIM4_Init-TIM4-false-HAL-true,13-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,14-MX_FSMC_Init-FSMC-false-HAL-true,15-MX_DAC_Init-DAC-false-HAL-true,16-MX_TIM3_Init-TIM3-false-HAL-true,17-MX_ADC1_Init-ADC1-false-HAL-true,18-MX_ADC3_Init-ADC3-false-HAL-true,19-MX_TIM1_Init-TIM1-false-HAL-true,20-MX_USART2_UART_Init-USART2-false-HAL-true
|
||||
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_IWDG_Init-IWDG-false-HAL-true,6-MX_TIM14_Init-TIM14-false-HAL-true,7-MX_TIM13_Init-TIM13-false-HAL-true,8-MX_TIM11_Init-TIM11-false-HAL-true,9-MX_SDIO_SD_Init-SDIO-false-HAL-true,10-MX_TIM2_Init-TIM2-false-HAL-true,11-MX_SPI2_Init-SPI2-false-HAL-true,12-MX_TIM4_Init-TIM4-false-HAL-true,13-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,14-MX_FSMC_Init-FSMC-false-HAL-true,15-MX_DAC_Init-DAC-false-HAL-true,16-MX_TIM3_Init-TIM3-false-HAL-true,17-MX_ADC1_Init-ADC1-false-HAL-true,18-MX_ADC3_Init-ADC3-false-HAL-true,19-MX_TIM1_Init-TIM1-false-HAL-true,20-MX_USART2_UART_Init-USART2-false-HAL-true,21-MX_USART3_UART_Init-USART3-false-HAL-true
|
||||
RCC.48MHZClocksFreq_Value=48000000
|
||||
RCC.AHBFreq_Value=168000000
|
||||
RCC.APB1CLKDivider=RCC_HCLK_DIV4
|
||||
@ -342,7 +342,9 @@ TIM2.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
|
||||
TIM2.IPParameters=Channel-PWM Generation3 CH3,Channel-PWM Generation4 CH4
|
||||
TIM3.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
|
||||
TIM3.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
|
||||
TIM3.IPParameters=Channel-PWM Generation4 CH4,Channel-PWM Generation2 CH2
|
||||
TIM3.IPParameters=Channel-PWM Generation4 CH4,Channel-PWM Generation2 CH2,Pulse-PWM Generation2 CH2,Period
|
||||
TIM3.Period=210
|
||||
TIM3.Pulse-PWM\ Generation2\ CH2=0
|
||||
TIM4.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
|
||||
TIM4.IPParameters=Channel-PWM Generation1 CH1
|
||||
USART1.IPParameters=VirtualMode
|
||||
|
@ -73,7 +73,7 @@ extern "C" {
|
||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
||||
|
||||
/* Exported functions prototypes ---------------------------------------------*/
|
||||
void Error_Handler(void);
|
||||
// void Error_Handler(void);
|
||||
|
||||
/* USER CODE BEGIN EFP */
|
||||
|
||||
|
@ -660,7 +660,7 @@ static void MX_TIM3_Init(void)
|
||||
htim3.Instance = TIM3;
|
||||
htim3.Init.Prescaler = 0;
|
||||
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||
htim3.Init.Period = 65535;
|
||||
htim3.Init.Period = 210;
|
||||
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||
htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||
if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
|
||||
@ -1086,16 +1086,16 @@ static void MX_FSMC_Init(void)
|
||||
* @brief This function is executed in case of error occurrence.
|
||||
* @retval None
|
||||
*/
|
||||
void Error_Handler(void)
|
||||
{
|
||||
/* USER CODE BEGIN Error_Handler_Debug */
|
||||
/* User can add his own implementation to report the HAL error return state */
|
||||
__disable_irq();
|
||||
while (1)
|
||||
{
|
||||
}
|
||||
/* USER CODE END Error_Handler_Debug */
|
||||
}
|
||||
// void Error_Handler(void)
|
||||
// {
|
||||
// /* USER CODE BEGIN Error_Handler_Debug */
|
||||
// // /* User can add his own implementation to report the HAL error return state */
|
||||
// // __disable_irq();
|
||||
// // while (1)
|
||||
// // {
|
||||
// // }
|
||||
// /* USER CODE END Error_Handler_Debug */
|
||||
// }
|
||||
|
||||
#ifdef USE_FULL_ASSERT
|
||||
/**
|
||||
|
@ -172,3 +172,7 @@ void lv_port_indev_init(void)
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
### LED WS2812B
|
||||
1. menuconfig 配置 pwm
|
||||
2. msh 报错 msh export 了两次复制的时候
|
||||
|
216
my_pro/RGB.c
Normal file
216
my_pro/RGB.c
Normal file
@ -0,0 +1,216 @@
|
||||
#include "RGB.h"
|
||||
#include "stdlib.h"
|
||||
// #include "tim.h"
|
||||
#include <rtthread.h>
|
||||
#include <rtdevice.h>
|
||||
#include <rtdef.h>
|
||||
|
||||
/*Some Static Colors------------------------------*/
|
||||
const RGB_Color_TypeDef RED = {255,0,0}; //红色
|
||||
const RGB_Color_TypeDef GREEN = {0,255,0}; //绿色
|
||||
const RGB_Color_TypeDef BLUE = {0,0,255}; //深蓝色
|
||||
const RGB_Color_TypeDef SKY = {0,255,255}; //天蓝色
|
||||
const RGB_Color_TypeDef MAGENTA = {255,0,220}; //粉色
|
||||
const RGB_Color_TypeDef YELLOW = {128,216,0}; //黄色
|
||||
const RGB_Color_TypeDef OEANGE = {127,106,0}; //橘色
|
||||
const RGB_Color_TypeDef BLACK = {0,0,0}; //无颜色
|
||||
const RGB_Color_TypeDef WHITE = {255,255,255}; //白色
|
||||
|
||||
uint32_t period, pulse, dir;
|
||||
|
||||
//将好看的颜色封装成数组,便于集中管理和访问
|
||||
RGB_Color_TypeDef table[16] =
|
||||
{
|
||||
{254,67,101},
|
||||
{76,0,10},
|
||||
{249,15,173},
|
||||
{128,0,32},
|
||||
{158,46,36},
|
||||
{184,206,142},
|
||||
{227,23,13},
|
||||
{178,34,34},
|
||||
{255,99,71},
|
||||
{99,38,18},
|
||||
{255,97,0},
|
||||
{21,161,201},
|
||||
{56,94,15},
|
||||
{50,205,50},
|
||||
{160,32,240},
|
||||
{218,60,90}
|
||||
};
|
||||
//这些是好看的颜色
|
||||
const RGB_Color_TypeDef color1 = {254,67,101};
|
||||
//const RGB_Color_TypeDef color2 = {76,0,10};
|
||||
//const RGB_Color_TypeDef color3 = {249,15,173};
|
||||
//const RGB_Color_TypeDef color4 = {128,0,32};
|
||||
//const RGB_Color_TypeDef color5 = {158,46,36};
|
||||
//const RGB_Color_TypeDef color6 = {184,206,142};
|
||||
//const RGB_Color_TypeDef color7 = {227,23,13};
|
||||
//const RGB_Color_TypeDef color8 = {178,34,34};
|
||||
//const RGB_Color_TypeDef color9 = {255,99,71};
|
||||
//const RGB_Color_TypeDef color10 ={99,38,18};
|
||||
//const RGB_Color_TypeDef color11= {255,97,0};
|
||||
//const RGB_Color_TypeDef color12= {21,161,201};
|
||||
//const RGB_Color_TypeDef color13= {56,94,15};
|
||||
//const RGB_Color_TypeDef color14= {50,205,50};
|
||||
//const RGB_Color_TypeDef color15= {160,32,240};
|
||||
//const RGB_Color_TypeDef color16= {218,60,90};
|
||||
|
||||
|
||||
/*二维数组存放最终PWM输出数组,每一行24个数据代表一个LED,最后一行24个0用于复位*/
|
||||
uint32_t Pixel_Buf[Pixel_NUM+1][24];
|
||||
|
||||
|
||||
#define PWM_DEV_NAME "pwm3" /* PWM设备名称 */
|
||||
#define PWM_DEV_CHANNEL 2 /* PWM通道 */
|
||||
|
||||
struct rt_device_pwm *pwm_dev; /* PWM设备句柄 */
|
||||
|
||||
int RGB_Init(void)
|
||||
{
|
||||
period = 1250; /* 周期为1.25us,单位为纳秒ns */
|
||||
dir = 1; /* PWM脉冲宽度值的增减方向 */
|
||||
pulse = 0; /* PWM脉冲宽度值,单位为纳秒ns */
|
||||
|
||||
/* 查找设备 */
|
||||
pwm_dev = (struct rt_device_pwm *)rt_device_find(PWM_DEV_NAME);
|
||||
if (pwm_dev == RT_NULL)
|
||||
{
|
||||
rt_kprintf("pwm sample run failed! can't find %s device!\n", PWM_DEV_NAME);
|
||||
return RT_ERROR;
|
||||
}
|
||||
|
||||
/* 设置PWM周期和脉冲宽度默认值 */
|
||||
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);
|
||||
/* 使能设备 */
|
||||
rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL);
|
||||
}
|
||||
|
||||
// static int pwm_led_sample(int argc, char *argv[])
|
||||
// {
|
||||
|
||||
// while (1)
|
||||
// {
|
||||
// rt_thread_mdelay(50);
|
||||
// if (dir)
|
||||
// {
|
||||
// pulse += 5000; /* 从0值开始每次增加5000ns */
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// pulse -= 5000; /* 从最大值开始每次减少5000ns */
|
||||
// }
|
||||
// if (pulse >= period)
|
||||
// {
|
||||
// dir = 0;
|
||||
// }
|
||||
// if (0 == pulse)
|
||||
// {
|
||||
// dir = 1;
|
||||
// }
|
||||
|
||||
|
||||
// }
|
||||
// }
|
||||
// /* 导出到 msh 命令列表中 */
|
||||
// MSH_CMD_EXPORT(pwm_led_sample, pwm sample);
|
||||
|
||||
|
||||
/*
|
||||
功能:最后一行装在24个0,输出24个周期占空比为0的PWM波,作为最后reset延时,这里总时长为24*1.25=37.5us > 24us(要求大于24us)
|
||||
//如果出现无法复位的情况,只需要在增加数组Pixel_Buf[Pixel_NUM+1][24]的行数,并改写Reset_Load即可,这里不做演示了,
|
||||
*/
|
||||
static void Reset_Load(void)
|
||||
{
|
||||
uint8_t i;
|
||||
for(i=0;i<24;i++)
|
||||
{
|
||||
Pixel_Buf[Pixel_NUM][i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
功能:发送数组Pixel_Buf[Pixel_NUM+1][24]内的数据,发送的数据被存储到定时器1通道1的CCR寄存器,用于控制PWM占空比
|
||||
参数:(&htim1)定时器1,(TIM_CHANNEL_1)通道1,((uint32_t *)Pixel_Buf)待发送数组,
|
||||
(Pixel_NUM+1)*24)发送个数,数组行列相乘
|
||||
*/
|
||||
#define LED_MAXNUM 16
|
||||
static void RGB_SendArray(void)
|
||||
{
|
||||
|
||||
for(int i=1;i<=LED_MAXNUM;i++)
|
||||
{
|
||||
for(int j=0;j<24;j++)
|
||||
{
|
||||
/* 设置PWM周期和脉冲宽度 */
|
||||
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, Pixel_Buf[i][j]);
|
||||
rt_thread_delay(1);
|
||||
}
|
||||
}
|
||||
// HAL_TIM_PWM_Start_DMA(&htim3, TIM_CHANNEL_2, (uint32_t *)Pixel_Buf,(Pixel_NUM+1)*24);
|
||||
}
|
||||
|
||||
/*
|
||||
功能:设定单个RGB LED的颜色,把结构体中RGB的24BIT转换为0码和1码
|
||||
参数:LedId为LED序号,Color:定义的颜色结构体
|
||||
*/
|
||||
//刷新WS2812B灯板显示函数
|
||||
static void RGB_Flush(void)
|
||||
{
|
||||
Reset_Load(); //复位
|
||||
RGB_SendArray(); //发送数据
|
||||
|
||||
|
||||
}
|
||||
|
||||
void RGB_SetOne_Color(uint8_t LedId,RGB_Color_TypeDef Color)
|
||||
{
|
||||
uint8_t i;
|
||||
if(LedId > Pixel_NUM)return; //avoid overflow 防止写入ID大于LED总数
|
||||
//这里是对 Pixel_Buf[LedId][i]写入一个周期内高电平的持续时间(或者说时PWM的占空比寄存器CCR1),
|
||||
for(i=0;i<8;i++) Pixel_Buf[LedId][i] = ( ((Color.G/5) & (1 << (7 -i)))? (CODE_1):CODE_0 );//数组某一行0~7转化存放G
|
||||
for(i=8;i<16;i++) Pixel_Buf[LedId][i] = ( ((Color.R/5) & (1 << (15-i)))? (CODE_1):CODE_0 );//数组某一行8~15转化存放R
|
||||
for(i=16;i<24;i++) Pixel_Buf[LedId][i] = ( ((Color.B/5) & (1 << (23-i)))? (CODE_1):CODE_0 );//数组某一行16~23转化存放B
|
||||
}
|
||||
|
||||
//调用RGB_SetOne_Color函数,完成对多个LED的颜色设置。
|
||||
void RGB_SetMore_Color(uint8_t head, uint8_t heal,RGB_Color_TypeDef color)
|
||||
{
|
||||
uint8_t i=0;
|
||||
for(i=head;i<=heal;i++)
|
||||
{
|
||||
RGB_SetOne_Color(i,color) ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//用来显示单个颜色的函数,只能从第一个开始显示,不好用
|
||||
//void RGB_RED(uint16_t Pixel_Len)
|
||||
//{
|
||||
// uint16_t i;
|
||||
// for(i=0;i<Pixel_Len;i++)//给对应个数LED写入红色
|
||||
// {
|
||||
// RGB_SetOne_Color(i,RED);
|
||||
// }
|
||||
//}
|
||||
//
|
||||
|
||||
|
||||
//灯管实现函数(完成本期效果的实现)
|
||||
void RGB_Show_64(void)
|
||||
{
|
||||
RGB_SetMore_Color(0,63,BLACK); //清空所有的LED数据
|
||||
RGB_SetMore_Color(0,rand()%8,table[rand()%16]); //第一行随机个灯亮随机颜色
|
||||
RGB_SetMore_Color(8,rand()%8+8,table[rand()%16]); //第二行。。。。以此类推
|
||||
// RGB_SetMore_Color(16,rand()%8+16,table[rand()%16]);
|
||||
// RGB_SetMore_Color(24,rand()%8+24,table[rand()%16]);
|
||||
// RGB_SetMore_Color(32,rand()%8+32,table[rand()%16]);
|
||||
// RGB_SetMore_Color(40,rand()%8+40,table[rand()%16]);
|
||||
// RGB_SetMore_Color(48,rand()%8+48,table[rand()%16]);
|
||||
// RGB_SetMore_Color(56,rand()%8+56,table[rand()%16]);
|
||||
RGB_Flush(); //刷新WS2812B的显示
|
||||
}
|
||||
|
||||
|
||||
|
47
my_pro/RGB.h
Normal file
47
my_pro/RGB.h
Normal file
@ -0,0 +1,47 @@
|
||||
#ifndef __RGB_H__
|
||||
#define __RGB_H__
|
||||
|
||||
#include "main.h"
|
||||
|
||||
//0码和1码的定义,设置的时CCR寄存器的值
|
||||
//由于使用的思PWM输出模式1,计数值<CCR时,输出有效电平-高电平(CubeMX配置默认有效电平为高电平)
|
||||
#define CODE_1 (840) //1码定时器计数次数,控制占空比为84/125 = 66%
|
||||
#define CODE_0 (700) //0码定时器计数次数,控制占空比为42/125 = 33%
|
||||
|
||||
extern uint32_t period, pulse, dir;
|
||||
|
||||
//单个LED的颜色控制结构体
|
||||
typedef struct
|
||||
{
|
||||
uint8_t R;
|
||||
uint8_t G;
|
||||
uint8_t B;
|
||||
}RGB_Color_TypeDef;
|
||||
|
||||
#define Pixel_NUM 64 //LED数量宏定义,我们灯板上有64个,
|
||||
|
||||
static void Reset_Load(void); //该函数用于将数组最后24个数据变为0,代表RESET_code
|
||||
|
||||
//发送最终数组
|
||||
static void RGB_SendArray(void);
|
||||
|
||||
static void RGB_Flush(void); //刷新RGB显示
|
||||
|
||||
|
||||
void RGB_SetOne_Color(uint8_t LedId,RGB_Color_TypeDef Color);//给一个LED装载24个颜色数据码(0码和1码)
|
||||
|
||||
|
||||
|
||||
//void RGB_RED(uint16_t Pixel_Len); //显示红灯
|
||||
|
||||
//控制多个LED显示相同的颜色
|
||||
void RGB_SetMore_Color(uint8_t head, uint8_t heal,RGB_Color_TypeDef color);
|
||||
|
||||
|
||||
void RGB_Show_64(void); //RGB写入函数
|
||||
|
||||
int RGB_Init(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -74,15 +74,27 @@ void snake_compare(rt_uint8_t key, rt_uint8_t repeat)
|
||||
rt_device_write(serial, 0, str, rt_strlen(str));
|
||||
LOG_I("str=%s",str);
|
||||
}
|
||||
// // 加速
|
||||
// if (rt_strcmp(tmp, "68") == 0 || rt_strcmp(tmp, "83") == 0)
|
||||
// {
|
||||
// if (rt_atomic_load(&now_direction) != 1)
|
||||
// rt_atomic_store(&now_direction, 3);
|
||||
// // rt_strncpy(str,"right\n",10);
|
||||
// const char *str = "right\n";
|
||||
// rt_device_write(serial, 0, str, rt_strlen(str));
|
||||
// }
|
||||
// 加速
|
||||
if (rt_strcmp(tmp, "38") == 0 )
|
||||
{
|
||||
|
||||
const char *str = "Speedup";
|
||||
rt_device_write(serial, 0, str, rt_strlen(str));
|
||||
}
|
||||
// 加速
|
||||
if (rt_strcmp(tmp, "28") == 0 )
|
||||
{
|
||||
|
||||
const char *str = "Speeddown";
|
||||
rt_device_write(serial, 0, str, rt_strlen(str));
|
||||
}
|
||||
// 加速
|
||||
if (rt_strcmp(tmp, "A8") == 0 )
|
||||
{
|
||||
|
||||
const char *str = "Toggle";
|
||||
rt_device_write(serial, 0, str, rt_strlen(str));
|
||||
}
|
||||
|
||||
// 菜单(切换页面)
|
||||
if (repeat == 0 && (rt_strcmp(tmp, "88") == 0 || rt_strcmp(tmp, "11") == 0))
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "infrared.h"
|
||||
#include <ulog.h>
|
||||
#include "my_func.h"
|
||||
#include "RGB.h"
|
||||
|
||||
#define THREAD_PRIORITY 25
|
||||
#define THREAD_STACK_SIZE 4096
|
||||
@ -26,6 +27,7 @@ rt_thread_t Infrared_Thread = RT_NULL;
|
||||
rt_thread_t Test_Thread = RT_NULL;
|
||||
rt_thread_t CDC_Thread = RT_NULL;
|
||||
rt_thread_t Serial_Thread = RT_NULL;
|
||||
rt_thread_t LED_Thread = RT_NULL;
|
||||
|
||||
char DEMO_PRODUCT_KEY[IOTX_PRODUCT_KEY_LEN + 1] = {0};
|
||||
char DEMO_DEVICE_NAME[IOTX_DEVICE_NAME_LEN + 1] = {0};
|
||||
@ -404,7 +406,14 @@ void cdc_entry(void *parameter)
|
||||
rt_thread_mdelay(500);
|
||||
}
|
||||
}
|
||||
|
||||
void led_entry(void *parameter)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
RGB_Show_64(); // 调用RGB灯板显示函数
|
||||
rt_thread_mdelay(500);
|
||||
}
|
||||
}
|
||||
// /* 用于接收消息的信号量 */
|
||||
// static struct rt_semaphore rx_sem;
|
||||
// /* 接收数据回调函数 */
|
||||
@ -560,7 +569,7 @@ MSH_CMD_EXPORT_ALIAS(cdc_init, cdc, "write on virtual device");
|
||||
// }
|
||||
void inf_init(void)
|
||||
{
|
||||
Infrared_Thread = rt_thread_create("Infrared_Thread", myir_entry, RT_NULL, THREAD_STACK_SIZE, THREAD_PRIORITY-THREAD_PRIORITY+3, THREAD_TIMESLICE*4);
|
||||
Infrared_Thread = rt_thread_create("Infrared_Thread", myir_entry, RT_NULL, THREAD_STACK_SIZE, THREAD_PRIORITY - THREAD_PRIORITY + 3, THREAD_TIMESLICE * 4);
|
||||
|
||||
if (Infrared_Thread != RT_NULL)
|
||||
{
|
||||
@ -572,6 +581,21 @@ void inf_init(void)
|
||||
}
|
||||
}
|
||||
MSH_CMD_EXPORT_ALIAS(inf_init, inf, "Infrared");
|
||||
void led_init(void)
|
||||
{
|
||||
RGB_Init();
|
||||
|
||||
LED_Thread = rt_thread_create("LED_Thread", led_entry, RT_NULL, THREAD_STACK_SIZE, THREAD_PRIORITY, THREAD_TIMESLICE);
|
||||
|
||||
if (LED_Thread != RT_NULL)
|
||||
{
|
||||
rt_thread_startup(LED_Thread);
|
||||
}
|
||||
else
|
||||
{
|
||||
rt_kprintf("LED_Thread Create Failed!\n");
|
||||
}
|
||||
}
|
||||
void tst_init(void)
|
||||
{
|
||||
Test_Thread = rt_thread_create("Test_Thread", test_lcd, RT_NULL, THREAD_STACK_SIZE, THREAD_PRIORITY, THREAD_TIMESLICE);
|
||||
@ -613,5 +637,7 @@ void my_project(void)
|
||||
tst_init(); // 不知道为什么不能在mqtt_init()之前,不然报错
|
||||
|
||||
serial_init();
|
||||
|
||||
led_init();
|
||||
}
|
||||
MSH_CMD_EXPORT_ALIAS(my_project, myproject, run my project);
|
Loading…
x
Reference in New Issue
Block a user