test pass
This commit is contained in:
@@ -0,0 +1,77 @@
|
|||||||
|
// File: STM32L4x5_4x6.dbgconf
|
||||||
|
// Version: 1.0.0
|
||||||
|
// Note: refer to STM32L4x5 and STM32L4x6 Reference manual (RM0351)
|
||||||
|
// refer to STM32L475xx STM32L476xx STM32L486xx STM32L496xx STM32L4A6xx datasheets
|
||||||
|
|
||||||
|
// <<< Use Configuration Wizard in Context Menu >>>
|
||||||
|
|
||||||
|
// <h> Debug MCU configuration register (DBGMCU_CR)
|
||||||
|
// <o.2> DBG_STANDBY <i> Debug Standby mode
|
||||||
|
// <o.1> DBG_STOP <i> Debug Stop mode
|
||||||
|
// <o.0> DBG_SLEEP <i> Debug Sleep mode
|
||||||
|
// </h>
|
||||||
|
DbgMCU_CR = 0x00000007;
|
||||||
|
|
||||||
|
// <h> Debug MCU APB1 freeze register1 (DBGMCU_APB1FZR1)
|
||||||
|
// <i> Reserved bits must be kept at reset value
|
||||||
|
// <o.31> DBG_LPTIM1_STOP <i> LPTIM1 counter stopped when core is halted
|
||||||
|
// <o.26> DBG_CAN2_STOP <i> bxCAN2 stopped when core is halted
|
||||||
|
// <o.25> DBG_CAN1_STOP <i> bxCAN1 stopped when core is halted
|
||||||
|
// <o.23> DBG_I2C3_STOP <i> I2C3 SMBUS timeout counter stopped when core is halted
|
||||||
|
// <o.22> DBG_I2C2_STOP <i> I2C2 SMBUS timeout counter stopped when core is halted
|
||||||
|
// <o.21> DBG_I2C1_STOP <i> I2C1 SMBUS timeout counter stopped when core is halted
|
||||||
|
// <o.12> DBG_IWDG_STOP <i> Independent watchdog counter stopped when core is halted
|
||||||
|
// <o.11> DBG_WWDG_STOP <i> Window watchdog counter stopped when core is halted
|
||||||
|
// <o.10> DBG_RTC_STOP <i> RTC counter stopped when core is halted
|
||||||
|
// <o.5> DBG_TIM7_STOP <i> TIM7 counter stopped when core is halted
|
||||||
|
// <o.4> DBG_TIM6_STOP <i> TIM6 counter stopped when core is halted
|
||||||
|
// <o.3> DBG_TIM5_STOP <i> TIM5 counter stopped when core is halted
|
||||||
|
// <o.2> DBG_TIM4_STOP <i> TIM4 counter stopped when core is halted
|
||||||
|
// <o.1> DBG_TIM3_STOP <i> TIM3 counter stopped when core is halted
|
||||||
|
// <o.0> DBG_TIM2_STOP <i> TIM2 counter stopped when core is halted
|
||||||
|
// </h>
|
||||||
|
DbgMCU_APB1_Fz1 = 0x00000000;
|
||||||
|
|
||||||
|
// <h> Debug MCU APB1 freeze register 2 (DBGMCU_APB1FZR2)
|
||||||
|
// <i> Reserved bits must be kept at reset value
|
||||||
|
// <o.5> DBG_LPTIM2_STOP <i> LPTIM2 counter stopped when core is halted
|
||||||
|
// <o.1> DBG_I2C4_STOP <i> I2C4 SMBUS timeout counter stopped when core is halted
|
||||||
|
// </h>
|
||||||
|
DbgMCU_APB1_Fz2 = 0x00000000;
|
||||||
|
|
||||||
|
// <h> Debug MCU APB2 freeze register (DBGMCU_APB2FZR)
|
||||||
|
// <i> Reserved bits must be kept at reset value
|
||||||
|
// <o.18> DBG_TIM17_STOP <i> TIM17 counter stopped when core is halted
|
||||||
|
// <o.17> DBG_TIM16_STOP <i> TIM16 counter stopped when core is halted
|
||||||
|
// <o.16> DBG_TIM15_STOP <i> TIM15 counter stopped when core is halted
|
||||||
|
// <o.13> DBG_TIM8_STOP <i> TIM8 counter stopped when core is halted
|
||||||
|
// <o.11> DBG_TIM1_STOP <i> TIM1 counter stopped when core is halted
|
||||||
|
// </h>
|
||||||
|
DbgMCU_APB2_Fz = 0x00000000;
|
||||||
|
|
||||||
|
// <h> TPIU Pin Routing (TRACECLK fixed on Pin PE2)
|
||||||
|
// <i> TRACECLK: Pin PE2
|
||||||
|
// <o1> TRACED0
|
||||||
|
// <i> ETM Trace Data 0
|
||||||
|
// <0x00040003=> Pin PE3
|
||||||
|
// <0x00020001=> Pin PC1
|
||||||
|
// <o2> TRACED1
|
||||||
|
// <i> ETM Trace Data 1
|
||||||
|
// <0x00040004=> Pin PE4
|
||||||
|
// <0x0002000A=> Pin PC10
|
||||||
|
// <o3> TRACED2
|
||||||
|
// <i> ETM Trace Data 2
|
||||||
|
// <0x00040005=> Pin PE5
|
||||||
|
// <0x00030002=> Pin PD2
|
||||||
|
// <o4> TRACED3
|
||||||
|
// <i> ETM Trace Data 3
|
||||||
|
// <0x00040006=> Pin PE6
|
||||||
|
// <0x0002000C=> Pin PC12
|
||||||
|
// </h>
|
||||||
|
TraceClk_Pin = 0x00040002;
|
||||||
|
TraceD0_Pin = 0x00040003;
|
||||||
|
TraceD1_Pin = 0x00040004;
|
||||||
|
TraceD2_Pin = 0x00040005;
|
||||||
|
TraceD3_Pin = 0x00040006;
|
||||||
|
|
||||||
|
// <<< end of configuration section >>>
|
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
* Auto generated Run-Time-Environment Configuration File
|
||||||
|
* *** Do not modify ! ***
|
||||||
|
*
|
||||||
|
* Project: 'TencentOS_tiny'
|
||||||
|
* Target: 'TencentOS_tiny'
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RTE_COMPONENTS_H
|
||||||
|
#define RTE_COMPONENTS_H
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Define the Device Header File:
|
||||||
|
*/
|
||||||
|
#define CMSIS_device_header "stm32l4xx.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* RTE_COMPONENTS_H */
|
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
extern uint16_t camBuffer[];
|
extern uint16_t camBuffer[];
|
||||||
extern uint8_t frame_flag;
|
extern uint8_t frame_flag;
|
||||||
|
static uint8_t modBuffer[96*96];
|
||||||
|
|
||||||
#define TASK1_STK_SIZE 1024
|
#define TASK1_STK_SIZE 1024
|
||||||
void task1(void *arg);
|
void task1(void *arg);
|
||||||
@@ -12,13 +13,34 @@ osThreadDef(task1, osPriorityNormal, 1, TASK1_STK_SIZE);
|
|||||||
void task2(void *arg);
|
void task2(void *arg);
|
||||||
osThreadDef(task2, osPriorityNormal, 1, TASK2_STK_SIZE);
|
osThreadDef(task2, osPriorityNormal, 1, TASK2_STK_SIZE);
|
||||||
|
|
||||||
|
uint8_t RGB565toGRAY(uint16_t bg_color)
|
||||||
|
{
|
||||||
|
uint8_t bg_r = 0;
|
||||||
|
uint8_t bg_g = 0;
|
||||||
|
uint8_t bg_b = 0;
|
||||||
|
bg_r = ((bg_color>>11)&0xff)<<3;
|
||||||
|
bg_g = ((bg_color>>5)&0x3f)<<2;
|
||||||
|
bg_b = (bg_color&0x1f)<<2;
|
||||||
|
uint8_t gray = (bg_r*299 + bg_g*587 + bg_b*114 + 500) / 1000;
|
||||||
|
return gray;
|
||||||
|
}
|
||||||
|
|
||||||
|
void input_convert(uint16_t* camera_buffer , uint8_t* model_buffer)
|
||||||
|
{
|
||||||
|
for(int i=0 ; i<OV2640_PIXEL_WIDTH*OV2640_PIXEL_HEIGHT ; i++)
|
||||||
|
{
|
||||||
|
model_buffer[i] = RGB565toGRAY(camera_buffer[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void task1(void *arg)
|
void task1(void *arg)
|
||||||
{
|
{
|
||||||
while (1) {
|
while (1) {
|
||||||
if(frame_flag == 1){
|
if(frame_flag == 1){
|
||||||
|
|
||||||
if(HAL_DCMI_Stop(&hdcmi))Error_Handler(); //stop DCMI
|
if(HAL_DCMI_Stop(&hdcmi))Error_Handler(); //stop DCMI
|
||||||
|
input_convert(camBuffer,modBuffer);
|
||||||
|
person_detect(modBuffer);
|
||||||
LCD_2IN4_Display(camBuffer,OV2640_PIXEL_WIDTH,OV2640_PIXEL_HEIGHT);
|
LCD_2IN4_Display(camBuffer,OV2640_PIXEL_WIDTH,OV2640_PIXEL_HEIGHT);
|
||||||
|
|
||||||
frame_flag = 0;
|
frame_flag = 0;
|
||||||
|
Reference in New Issue
Block a user