added stop mode feature
This commit is contained in:
parent
441cc1c516
commit
96727ac84d
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0889.hex
Normal file
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0889.hex
Normal file
File diff suppressed because it is too large
Load Diff
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0895.hex
Normal file
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0895.hex
Normal file
File diff suppressed because it is too large
Load Diff
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0896.hex
Normal file
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0896.hex
Normal file
File diff suppressed because it is too large
Load Diff
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0898.hex
Normal file
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0898.hex
Normal file
File diff suppressed because it is too large
Load Diff
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0899.hex
Normal file
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0899.hex
Normal file
File diff suppressed because it is too large
Load Diff
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0901.hex
Normal file
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0901.hex
Normal file
File diff suppressed because it is too large
Load Diff
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0902.hex
Normal file
20635
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0902.hex
Normal file
File diff suppressed because it is too large
Load Diff
20652
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0903.hex
Normal file
20652
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0903.hex
Normal file
File diff suppressed because it is too large
Load Diff
20652
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0904.hex
Normal file
20652
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0904.hex
Normal file
File diff suppressed because it is too large
Load Diff
20652
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0905.hex
Normal file
20652
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0905.hex
Normal file
File diff suppressed because it is too large
Load Diff
20652
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0906.hex
Normal file
20652
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0906.hex
Normal file
File diff suppressed because it is too large
Load Diff
20664
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0907.hex
Normal file
20664
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0907.hex
Normal file
File diff suppressed because it is too large
Load Diff
20664
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0908.hex
Normal file
20664
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0908.hex
Normal file
File diff suppressed because it is too large
Load Diff
20661
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0912.hex
Normal file
20661
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0912.hex
Normal file
File diff suppressed because it is too large
Load Diff
20661
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0913.hex
Normal file
20661
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0913.hex
Normal file
File diff suppressed because it is too large
Load Diff
20661
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0914.hex
Normal file
20661
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0914.hex
Normal file
File diff suppressed because it is too large
Load Diff
20661
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0915.hex
Normal file
20661
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0915.hex
Normal file
File diff suppressed because it is too large
Load Diff
20661
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0916.hex
Normal file
20661
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0916.hex
Normal file
File diff suppressed because it is too large
Load Diff
20666
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0917.hex
Normal file
20666
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0917.hex
Normal file
File diff suppressed because it is too large
Load Diff
20667
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0918.hex
Normal file
20667
01_Code/Binaries/Goyoyo_DevBrd_00_00_00_0918.hex
Normal file
File diff suppressed because it is too large
Load Diff
@ -59,6 +59,9 @@ void Error_Handler(void);
|
|||||||
/* Private defines -----------------------------------------------------------*/
|
/* Private defines -----------------------------------------------------------*/
|
||||||
#define USER_LED_Pin GPIO_PIN_10
|
#define USER_LED_Pin GPIO_PIN_10
|
||||||
#define USER_LED_GPIO_Port GPIOF
|
#define USER_LED_GPIO_Port GPIOF
|
||||||
|
#define USER_BUTTON1_Pin GPIO_PIN_0
|
||||||
|
#define USER_BUTTON1_GPIO_Port GPIOC
|
||||||
|
#define USER_BUTTON1_EXTI_IRQn EXTI0_IRQn
|
||||||
#define USER_BUTTON_Pin GPIO_PIN_10
|
#define USER_BUTTON_Pin GPIO_PIN_10
|
||||||
#define USER_BUTTON_GPIO_Port GPIOA
|
#define USER_BUTTON_GPIO_Port GPIOA
|
||||||
#define LED_RED_Pin GPIO_PIN_15
|
#define LED_RED_Pin GPIO_PIN_15
|
||||||
|
|||||||
@ -52,6 +52,7 @@ void MemManage_Handler(void);
|
|||||||
void BusFault_Handler(void);
|
void BusFault_Handler(void);
|
||||||
void UsageFault_Handler(void);
|
void UsageFault_Handler(void);
|
||||||
void DebugMon_Handler(void);
|
void DebugMon_Handler(void);
|
||||||
|
void EXTI0_IRQHandler(void);
|
||||||
void TIM2_IRQHandler(void);
|
void TIM2_IRQHandler(void);
|
||||||
void UART4_IRQHandler(void);
|
void UART4_IRQHandler(void);
|
||||||
void TIM7_IRQHandler(void);
|
void TIM7_IRQHandler(void);
|
||||||
|
|||||||
@ -553,6 +553,12 @@ static void MX_GPIO_Init(void)
|
|||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(USER_LED_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(USER_LED_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/*Configure GPIO pin : USER_BUTTON1_Pin */
|
||||||
|
GPIO_InitStruct.Pin = USER_BUTTON1_Pin;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
|
HAL_GPIO_Init(USER_BUTTON1_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : USER_BUTTON_Pin */
|
/*Configure GPIO pin : USER_BUTTON_Pin */
|
||||||
GPIO_InitStruct.Pin = USER_BUTTON_Pin;
|
GPIO_InitStruct.Pin = USER_BUTTON_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||||
@ -566,6 +572,10 @@ static void MX_GPIO_Init(void)
|
|||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(LED_RED_GPIO_Port, &GPIO_InitStruct);
|
HAL_GPIO_Init(LED_RED_GPIO_Port, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
/* EXTI interrupt init*/
|
||||||
|
HAL_NVIC_SetPriority(EXTI0_IRQn, 5, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
|
||||||
|
|
||||||
/* USER CODE BEGIN MX_GPIO_Init_2 */
|
/* USER CODE BEGIN MX_GPIO_Init_2 */
|
||||||
/* USER CODE END MX_GPIO_Init_2 */
|
/* USER CODE END MX_GPIO_Init_2 */
|
||||||
}
|
}
|
||||||
@ -598,7 +608,7 @@ void StartDefaultTask(void const * argument)
|
|||||||
LOG(LOG_INFO, "looping Current Minute: %d", cur_time.Minutes);
|
LOG(LOG_INFO, "looping Current Minute: %d", cur_time.Minutes);
|
||||||
LOG(LOG_INFO, "looping Current seconds: %d", cur_time.Seconds);
|
LOG(LOG_INFO, "looping Current seconds: %d", cur_time.Seconds);
|
||||||
|
|
||||||
osDelay(5000);
|
osDelay(2000);
|
||||||
}
|
}
|
||||||
/* USER CODE END 5 */
|
/* USER CODE END 5 */
|
||||||
}
|
}
|
||||||
|
|||||||
@ -163,6 +163,20 @@ void DebugMon_Handler(void)
|
|||||||
/* please refer to the startup file (startup_stm32f4xx.s). */
|
/* please refer to the startup file (startup_stm32f4xx.s). */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief This function handles EXTI line0 interrupt.
|
||||||
|
*/
|
||||||
|
void EXTI0_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN EXTI0_IRQn 0 */
|
||||||
|
|
||||||
|
/* USER CODE END EXTI0_IRQn 0 */
|
||||||
|
HAL_GPIO_EXTI_IRQHandler(USER_BUTTON1_Pin);
|
||||||
|
/* USER CODE BEGIN EXTI0_IRQn 1 */
|
||||||
|
|
||||||
|
/* USER CODE END EXTI0_IRQn 1 */
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This function handles TIM2 global interrupt.
|
* @brief This function handles TIM2 global interrupt.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -0,0 +1,54 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file fatfs.c
|
||||||
|
* @brief Code for fatfs applications
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2025 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
#include "fatfs.h"
|
||||||
|
|
||||||
|
uint8_t retUSER; /* Return value for USER */
|
||||||
|
char USERPath[4]; /* USER logical drive path */
|
||||||
|
FATFS USERFatFS; /* File system object for USER logical drive */
|
||||||
|
FIL USERFile; /* File object for USER */
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Variables */
|
||||||
|
|
||||||
|
/* USER CODE END Variables */
|
||||||
|
|
||||||
|
void MX_FATFS_Init(void)
|
||||||
|
{
|
||||||
|
/*## FatFS: Link the USER driver ###########################*/
|
||||||
|
retUSER = FATFS_LinkDriver(&USER_Driver, USERPath);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Init */
|
||||||
|
/* additional user code for init */
|
||||||
|
/* USER CODE END Init */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Gets Time from RTC
|
||||||
|
* @param None
|
||||||
|
* @retval Time in DWORD
|
||||||
|
*/
|
||||||
|
DWORD get_fattime(void)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN get_fattime */
|
||||||
|
return 0;
|
||||||
|
/* USER CODE END get_fattime */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Application */
|
||||||
|
|
||||||
|
/* USER CODE END Application */
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file fatfs.h
|
||||||
|
* @brief Header for fatfs applications
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2025 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __fatfs_H
|
||||||
|
#define __fatfs_H
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "ff.h"
|
||||||
|
#include "ff_gen_drv.h"
|
||||||
|
#include "user_diskio.h" /* defines USER_Driver as external */
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Includes */
|
||||||
|
|
||||||
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
extern uint8_t retUSER; /* Return value for USER */
|
||||||
|
extern char USERPath[4]; /* USER logical drive path */
|
||||||
|
extern FATFS USERFatFS; /* File system object for USER logical drive */
|
||||||
|
extern FIL USERFile; /* File object for USER */
|
||||||
|
|
||||||
|
void MX_FATFS_Init(void);
|
||||||
|
|
||||||
|
/* USER CODE BEGIN Prototypes */
|
||||||
|
|
||||||
|
/* USER CODE END Prototypes */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif /*__fatfs_H */
|
||||||
@ -0,0 +1,167 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file user_diskio.c
|
||||||
|
* @brief This file includes a diskio driver skeleton to be completed by the user.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2025 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
|
||||||
|
#ifdef USE_OBSOLETE_USER_CODE_SECTION_0
|
||||||
|
/*
|
||||||
|
* Warning: the user section 0 is no more in use (starting from CubeMx version 4.16.0)
|
||||||
|
* To be suppressed in the future.
|
||||||
|
* Kept to ensure backward compatibility with previous CubeMx versions when
|
||||||
|
* migrating projects.
|
||||||
|
* User code previously added there should be copied in the new user sections before
|
||||||
|
* the section contents can be deleted.
|
||||||
|
*/
|
||||||
|
/* USER CODE BEGIN 0 */
|
||||||
|
/* USER CODE END 0 */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* USER CODE BEGIN DECL */
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
#include <string.h>
|
||||||
|
#include "ff_gen_drv.h"
|
||||||
|
|
||||||
|
/* Private typedef -----------------------------------------------------------*/
|
||||||
|
/* Private define ------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Private variables ---------------------------------------------------------*/
|
||||||
|
/* Disk status */
|
||||||
|
static volatile DSTATUS Stat = STA_NOINIT;
|
||||||
|
|
||||||
|
/* USER CODE END DECL */
|
||||||
|
|
||||||
|
/* Private function prototypes -----------------------------------------------*/
|
||||||
|
DSTATUS USER_initialize (BYTE pdrv);
|
||||||
|
DSTATUS USER_status (BYTE pdrv);
|
||||||
|
DRESULT USER_read (BYTE pdrv, BYTE *buff, DWORD sector, UINT count);
|
||||||
|
#if _USE_WRITE == 1
|
||||||
|
DRESULT USER_write (BYTE pdrv, const BYTE *buff, DWORD sector, UINT count);
|
||||||
|
#endif /* _USE_WRITE == 1 */
|
||||||
|
#if _USE_IOCTL == 1
|
||||||
|
DRESULT USER_ioctl (BYTE pdrv, BYTE cmd, void *buff);
|
||||||
|
#endif /* _USE_IOCTL == 1 */
|
||||||
|
|
||||||
|
Diskio_drvTypeDef USER_Driver =
|
||||||
|
{
|
||||||
|
USER_initialize,
|
||||||
|
USER_status,
|
||||||
|
USER_read,
|
||||||
|
#if _USE_WRITE
|
||||||
|
USER_write,
|
||||||
|
#endif /* _USE_WRITE == 1 */
|
||||||
|
#if _USE_IOCTL == 1
|
||||||
|
USER_ioctl,
|
||||||
|
#endif /* _USE_IOCTL == 1 */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Private functions ---------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initializes a Drive
|
||||||
|
* @param pdrv: Physical drive number (0..)
|
||||||
|
* @retval DSTATUS: Operation status
|
||||||
|
*/
|
||||||
|
DSTATUS USER_initialize (
|
||||||
|
BYTE pdrv /* Physical drive nmuber to identify the drive */
|
||||||
|
)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN INIT */
|
||||||
|
Stat = STA_NOINIT;
|
||||||
|
return Stat;
|
||||||
|
/* USER CODE END INIT */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Gets Disk Status
|
||||||
|
* @param pdrv: Physical drive number (0..)
|
||||||
|
* @retval DSTATUS: Operation status
|
||||||
|
*/
|
||||||
|
DSTATUS USER_status (
|
||||||
|
BYTE pdrv /* Physical drive number to identify the drive */
|
||||||
|
)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN STATUS */
|
||||||
|
Stat = STA_NOINIT;
|
||||||
|
return Stat;
|
||||||
|
/* USER CODE END STATUS */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Reads Sector(s)
|
||||||
|
* @param pdrv: Physical drive number (0..)
|
||||||
|
* @param *buff: Data buffer to store read data
|
||||||
|
* @param sector: Sector address (LBA)
|
||||||
|
* @param count: Number of sectors to read (1..128)
|
||||||
|
* @retval DRESULT: Operation result
|
||||||
|
*/
|
||||||
|
DRESULT USER_read (
|
||||||
|
BYTE pdrv, /* Physical drive nmuber to identify the drive */
|
||||||
|
BYTE *buff, /* Data buffer to store read data */
|
||||||
|
DWORD sector, /* Sector address in LBA */
|
||||||
|
UINT count /* Number of sectors to read */
|
||||||
|
)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN READ */
|
||||||
|
return RES_OK;
|
||||||
|
/* USER CODE END READ */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Writes Sector(s)
|
||||||
|
* @param pdrv: Physical drive number (0..)
|
||||||
|
* @param *buff: Data to be written
|
||||||
|
* @param sector: Sector address (LBA)
|
||||||
|
* @param count: Number of sectors to write (1..128)
|
||||||
|
* @retval DRESULT: Operation result
|
||||||
|
*/
|
||||||
|
#if _USE_WRITE == 1
|
||||||
|
DRESULT USER_write (
|
||||||
|
BYTE pdrv, /* Physical drive nmuber to identify the drive */
|
||||||
|
const BYTE *buff, /* Data to be written */
|
||||||
|
DWORD sector, /* Sector address in LBA */
|
||||||
|
UINT count /* Number of sectors to write */
|
||||||
|
)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN WRITE */
|
||||||
|
/* USER CODE HERE */
|
||||||
|
return RES_OK;
|
||||||
|
/* USER CODE END WRITE */
|
||||||
|
}
|
||||||
|
#endif /* _USE_WRITE == 1 */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief I/O control operation
|
||||||
|
* @param pdrv: Physical drive number (0..)
|
||||||
|
* @param cmd: Control code
|
||||||
|
* @param *buff: Buffer to send/receive control data
|
||||||
|
* @retval DRESULT: Operation result
|
||||||
|
*/
|
||||||
|
#if _USE_IOCTL == 1
|
||||||
|
DRESULT USER_ioctl (
|
||||||
|
BYTE pdrv, /* Physical drive nmuber (0..) */
|
||||||
|
BYTE cmd, /* Control code */
|
||||||
|
void *buff /* Buffer to send/receive control data */
|
||||||
|
)
|
||||||
|
{
|
||||||
|
/* USER CODE BEGIN IOCTL */
|
||||||
|
DRESULT res = RES_ERROR;
|
||||||
|
return res;
|
||||||
|
/* USER CODE END IOCTL */
|
||||||
|
}
|
||||||
|
#endif /* _USE_IOCTL == 1 */
|
||||||
|
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
/* USER CODE BEGIN Header */
|
||||||
|
/**
|
||||||
|
******************************************************************************
|
||||||
|
* @file user_diskio.h
|
||||||
|
* @brief This file contains the common defines and functions prototypes for
|
||||||
|
* the user_diskio driver.
|
||||||
|
******************************************************************************
|
||||||
|
* @attention
|
||||||
|
*
|
||||||
|
* Copyright (c) 2025 STMicroelectronics.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
* in the root directory of this software component.
|
||||||
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
/* USER CODE END Header */
|
||||||
|
|
||||||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||||
|
#ifndef __USER_DISKIO_H
|
||||||
|
#define __USER_DISKIO_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* USER CODE BEGIN 0 */
|
||||||
|
|
||||||
|
/* Includes ------------------------------------------------------------------*/
|
||||||
|
/* Exported types ------------------------------------------------------------*/
|
||||||
|
/* Exported constants --------------------------------------------------------*/
|
||||||
|
/* Exported functions ------------------------------------------------------- */
|
||||||
|
extern Diskio_drvTypeDef USER_Driver;
|
||||||
|
|
||||||
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __USER_DISKIO_H */
|
||||||
@ -63,43 +63,44 @@ Mcu.Name=STM32F413Z(G-H)Tx
|
|||||||
Mcu.Package=LQFP144
|
Mcu.Package=LQFP144
|
||||||
Mcu.Pin0=PE2
|
Mcu.Pin0=PE2
|
||||||
Mcu.Pin1=PC14-OSC32_IN
|
Mcu.Pin1=PC14-OSC32_IN
|
||||||
Mcu.Pin10=PB14
|
Mcu.Pin10=PC2
|
||||||
Mcu.Pin11=PB15
|
Mcu.Pin11=PB14
|
||||||
Mcu.Pin12=PG6
|
Mcu.Pin12=PB15
|
||||||
Mcu.Pin13=PC7
|
Mcu.Pin13=PG6
|
||||||
Mcu.Pin14=PC9
|
Mcu.Pin14=PC7
|
||||||
Mcu.Pin15=PA10
|
Mcu.Pin15=PC9
|
||||||
Mcu.Pin16=PA11
|
Mcu.Pin16=PA10
|
||||||
Mcu.Pin17=PA12
|
Mcu.Pin17=PA11
|
||||||
Mcu.Pin18=PA13
|
Mcu.Pin18=PA12
|
||||||
Mcu.Pin19=PA14
|
Mcu.Pin19=PA13
|
||||||
Mcu.Pin2=PC15-OSC32_OUT
|
Mcu.Pin2=PC15-OSC32_OUT
|
||||||
Mcu.Pin20=PC10
|
Mcu.Pin20=PA14
|
||||||
Mcu.Pin21=PD0
|
Mcu.Pin21=PC10
|
||||||
Mcu.Pin22=PD1
|
Mcu.Pin22=PD0
|
||||||
Mcu.Pin23=PD2
|
Mcu.Pin23=PD1
|
||||||
Mcu.Pin24=PD3
|
Mcu.Pin24=PD2
|
||||||
Mcu.Pin25=PD6
|
Mcu.Pin25=PD3
|
||||||
Mcu.Pin26=PG15
|
Mcu.Pin26=PD6
|
||||||
Mcu.Pin27=PB5
|
Mcu.Pin27=PG15
|
||||||
Mcu.Pin28=PB6
|
Mcu.Pin28=PB5
|
||||||
Mcu.Pin29=PB8
|
Mcu.Pin29=PB6
|
||||||
Mcu.Pin3=PF6
|
Mcu.Pin3=PF6
|
||||||
Mcu.Pin30=PB9
|
Mcu.Pin30=PB8
|
||||||
Mcu.Pin31=VP_FATFS_VS_Generic
|
Mcu.Pin31=PB9
|
||||||
Mcu.Pin32=VP_FREERTOS_VS_CMSIS_V1
|
Mcu.Pin32=VP_FATFS_VS_Generic
|
||||||
Mcu.Pin33=VP_RTC_VS_RTC_Activate
|
Mcu.Pin33=VP_FREERTOS_VS_CMSIS_V1
|
||||||
Mcu.Pin34=VP_RTC_VS_RTC_Calendar
|
Mcu.Pin34=VP_RTC_VS_RTC_Activate
|
||||||
Mcu.Pin35=VP_SYS_VS_tim2
|
Mcu.Pin35=VP_RTC_VS_RTC_Calendar
|
||||||
Mcu.Pin36=VP_TIM7_VS_ClockSourceINT
|
Mcu.Pin36=VP_SYS_VS_tim2
|
||||||
Mcu.Pin37=VP_USB_DEVICE_VS_USB_DEVICE_MSC_FS
|
Mcu.Pin37=VP_TIM7_VS_ClockSourceINT
|
||||||
|
Mcu.Pin38=VP_USB_DEVICE_VS_USB_DEVICE_MSC_FS
|
||||||
Mcu.Pin4=PF8
|
Mcu.Pin4=PF8
|
||||||
Mcu.Pin5=PF9
|
Mcu.Pin5=PF9
|
||||||
Mcu.Pin6=PF10
|
Mcu.Pin6=PF10
|
||||||
Mcu.Pin7=PH0 - OSC_IN
|
Mcu.Pin7=PH0 - OSC_IN
|
||||||
Mcu.Pin8=PH1 - OSC_OUT
|
Mcu.Pin8=PH1 - OSC_OUT
|
||||||
Mcu.Pin9=PC2
|
Mcu.Pin9=PC0
|
||||||
Mcu.PinsNb=38
|
Mcu.PinsNb=39
|
||||||
Mcu.ThirdPartyNb=0
|
Mcu.ThirdPartyNb=0
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32F413ZHTx
|
Mcu.UserName=STM32F413ZHTx
|
||||||
@ -108,6 +109,7 @@ MxDb.Version=DB.6.0.130
|
|||||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.DMA2_Stream6_IRQn=true\:13\:0\:true\:false\:true\:true\:false\:true\:true
|
NVIC.DMA2_Stream6_IRQn=true\:13\:0\:true\:false\:true\:true\:false\:true\:true
|
||||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
|
NVIC.EXTI0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
|
||||||
NVIC.ForceEnableDMAVector=true
|
NVIC.ForceEnableDMAVector=true
|
||||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
|
||||||
@ -164,6 +166,10 @@ PB9.GPIOParameters=GPIO_PuPd
|
|||||||
PB9.GPIO_PuPd=GPIO_PULLUP
|
PB9.GPIO_PuPd=GPIO_PULLUP
|
||||||
PB9.Mode=mmc_8_bits_Wide_bus
|
PB9.Mode=mmc_8_bits_Wide_bus
|
||||||
PB9.Signal=SDIO_D5
|
PB9.Signal=SDIO_D5
|
||||||
|
PC0.GPIOParameters=GPIO_Label
|
||||||
|
PC0.GPIO_Label=USER_BUTTON1
|
||||||
|
PC0.Locked=true
|
||||||
|
PC0.Signal=GPXTI0
|
||||||
PC10.GPIOParameters=GPIO_PuPd
|
PC10.GPIOParameters=GPIO_PuPd
|
||||||
PC10.GPIO_PuPd=GPIO_PULLUP
|
PC10.GPIO_PuPd=GPIO_PULLUP
|
||||||
PC10.Locked=true
|
PC10.Locked=true
|
||||||
@ -329,6 +335,8 @@ RTC.WeekDay=RTC_WEEKDAY_SUNDAY
|
|||||||
RTC.Year=24
|
RTC.Year=24
|
||||||
SDIO.HardwareFlowControl=SDIO_HARDWARE_FLOW_CONTROL_ENABLE
|
SDIO.HardwareFlowControl=SDIO_HARDWARE_FLOW_CONTROL_ENABLE
|
||||||
SDIO.IPParameters=HardwareFlowControl
|
SDIO.IPParameters=HardwareFlowControl
|
||||||
|
SH.GPXTI0.0=GPIO_EXTI0
|
||||||
|
SH.GPXTI0.ConfNb=1
|
||||||
SH.S_CKOUTDFSDM1.0=DFSDM1_CKOUT,CKOUT
|
SH.S_CKOUTDFSDM1.0=DFSDM1_CKOUT,CKOUT
|
||||||
SH.S_CKOUTDFSDM1.1=DFSDM1_CKOUT,PDM_SPI_input_from_ch1_and_internal_clock
|
SH.S_CKOUTDFSDM1.1=DFSDM1_CKOUT,PDM_SPI_input_from_ch1_and_internal_clock
|
||||||
SH.S_CKOUTDFSDM1.ConfNb=2
|
SH.S_CKOUTDFSDM1.ConfNb=2
|
||||||
|
|||||||
@ -88,6 +88,9 @@ uint8_t record_started=0;
|
|||||||
uint8_t record_stoped=0;
|
uint8_t record_stoped=0;
|
||||||
|
|
||||||
|
|
||||||
|
uint8_t flag = 0;
|
||||||
|
uint32_t pressStart;
|
||||||
|
|
||||||
char FileName[100];
|
char FileName[100];
|
||||||
uint8_t pre_sec = 0;
|
uint8_t pre_sec = 0;
|
||||||
typedef struct
|
typedef struct
|
||||||
@ -100,7 +103,7 @@ typedef struct
|
|||||||
|
|
||||||
Recording_Breakout_TimeTypeDef Brkot_time;
|
Recording_Breakout_TimeTypeDef Brkot_time;
|
||||||
|
|
||||||
|
extern void SystemClock_Config(void);
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* F U N C T I O N P R O T O T Y P E S */
|
/* F U N C T I O N P R O T O T Y P E S */
|
||||||
@ -117,6 +120,8 @@ void App_AudioRecCallbackFnc(App_AudioRec_State_t state);
|
|||||||
void get_audio_file_name(char *file_name, uint8_t rec_break_hr, uint8_t rec_break_min);
|
void get_audio_file_name(char *file_name, uint8_t rec_break_hr, uint8_t rec_break_min);
|
||||||
|
|
||||||
void Recording_breakout();
|
void Recording_breakout();
|
||||||
|
|
||||||
|
void App_Check_for_stopMode();
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* F U N C T I O N S */
|
/* F U N C T I O N S */
|
||||||
@ -225,6 +230,7 @@ void App_OSTask(void const * argument)
|
|||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
App_Task(5);
|
App_Task(5);
|
||||||
|
App_Check_for_stopMode();
|
||||||
osDelay(10);
|
osDelay(10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -380,20 +386,6 @@ time_t getUnixTimeStamp()
|
|||||||
void Recording_breakout(){
|
void Recording_breakout(){
|
||||||
|
|
||||||
|
|
||||||
// HAL_RTC_GetTime(RTC_HDL, &cur_time, RTC_FORMAT_BIN);
|
|
||||||
|
|
||||||
// if(cur_time.Seconds != pre_sec){
|
|
||||||
//
|
|
||||||
//// LOG(LOG_INFO, "looping Current Minute: %d", cur_time.Minutes);
|
|
||||||
//// LOG(LOG_INFO, "looping Current seconds: %d", cur_time.Seconds);
|
|
||||||
//
|
|
||||||
// pre_sec = cur_time.Seconds;
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// LOG(LOG_INFO, "looping Current Minute: %d", cur_time.Minutes);
|
|
||||||
// LOG(LOG_INFO, "looping Current seconds: %d", cur_time.Seconds);
|
|
||||||
|
|
||||||
if(cur_time.Hours == Brkot_time.Brkot_Hours && cur_time.Minutes == Brkot_time.Brkot_Minutes)
|
if(cur_time.Hours == Brkot_time.Brkot_Hours && cur_time.Minutes == Brkot_time.Brkot_Minutes)
|
||||||
{
|
{
|
||||||
if (App_AudioRec_Stop() != 0) {
|
if (App_AudioRec_Stop() != 0) {
|
||||||
@ -416,6 +408,50 @@ void Recording_breakout(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void App_Check_for_stopMode()
|
||||||
|
{
|
||||||
|
if (flag == 0){
|
||||||
|
pressStart = HAL_GetTick();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(HAL_GPIO_ReadPin(USER_BUTTON1_GPIO_Port, USER_BUTTON1_Pin) == GPIO_PIN_SET){
|
||||||
|
|
||||||
|
flag = 1;
|
||||||
|
|
||||||
|
if (HAL_GetTick() - pressStart >= 2000){
|
||||||
|
|
||||||
|
LOG(LOG_INFO, "ENTERED stop MODE......");
|
||||||
|
|
||||||
|
RUN_LED_OFF();
|
||||||
|
|
||||||
|
HAL_Delay(10);
|
||||||
|
|
||||||
|
HAL_SuspendTick();
|
||||||
|
|
||||||
|
// Enter Stop Mode with regulator ON, wake on EXTI (WFI instruction)
|
||||||
|
HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
|
||||||
|
|
||||||
|
// MCU is now in Stop Mode — resumes here after wake-up
|
||||||
|
|
||||||
|
// Reconfigure system clock (must be done after wake from Stop)
|
||||||
|
SystemClock_Config();
|
||||||
|
|
||||||
|
HAL_ResumeTick();
|
||||||
|
|
||||||
|
LOG(LOG_INFO, "WAKE UP FORM STOP MODE.....");
|
||||||
|
|
||||||
|
flag = 0;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
flag = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* See header file of description */
|
/* See header file of description */
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
@ -553,6 +589,14 @@ void App_Timer_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
||||||
|
{
|
||||||
|
if (GPIO_Pin == USER_BUTTON1_Pin)
|
||||||
|
{
|
||||||
|
// Wake-up happened — no need to do anything unless needed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* E N D O F F I L E */
|
/* E N D O F F I L E */
|
||||||
|
|||||||
@ -101,6 +101,8 @@ int32_t pdm_dma_buf[AUDIO_PDM_DMA_BUF_SIZE];
|
|||||||
|
|
||||||
static App_AudioRec_State_t rec_state = AUDIO_REC_STATE_INIT ;
|
static App_AudioRec_State_t rec_state = AUDIO_REC_STATE_INIT ;
|
||||||
|
|
||||||
|
//_app_rec_break_state_t rec_break_state = IDLE;
|
||||||
|
|
||||||
static App_AudioRecCb_t usr_callback_fnc;
|
static App_AudioRecCb_t usr_callback_fnc;
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|||||||
@ -48,6 +48,7 @@
|
|||||||
/* */
|
/* */
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
typedef enum _app_audio_rec_state_t_
|
typedef enum _app_audio_rec_state_t_
|
||||||
{
|
{
|
||||||
AUDIO_REC_STATE_INIT = 0,
|
AUDIO_REC_STATE_INIT = 0,
|
||||||
@ -56,12 +57,22 @@ typedef enum _app_audio_rec_state_t_
|
|||||||
AUDIO_REC_STATE_STOPPED
|
AUDIO_REC_STATE_STOPPED
|
||||||
}App_AudioRec_State_t;
|
}App_AudioRec_State_t;
|
||||||
|
|
||||||
|
//App_rec_break_state_t rec_break_state = IDLE;
|
||||||
|
|
||||||
typedef void (*App_AudioRecCb_t) (App_AudioRec_State_t state);
|
typedef void (*App_AudioRecCb_t) (App_AudioRec_State_t state);
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* */
|
/* */
|
||||||
/* F U N C T I O N P R O T O T Y P E S */
|
/* F U N C T I O N P R O T O T Y P E S */
|
||||||
/* */
|
/* */
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
enum _app_rec_break_state_t
|
||||||
|
{
|
||||||
|
IDLE = 0,
|
||||||
|
RECORDING,
|
||||||
|
STOPED
|
||||||
|
};
|
||||||
|
|
||||||
uint8_t App_AudioRec_Init(App_AudioRecCb_t app_cb);
|
uint8_t App_AudioRec_Init(App_AudioRecCb_t app_cb);
|
||||||
|
|
||||||
uint8_t App_AudioRec_Start(char* out_file);
|
uint8_t App_AudioRec_Start(char* out_file);
|
||||||
|
|||||||
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
MAJOR_VERSION "." MINOR_VERSION "." BUG_FIX_VERSION "." BUILD_VERSION
|
MAJOR_VERSION "." MINOR_VERSION "." BUG_FIX_VERSION "." BUILD_VERSION
|
||||||
*/
|
*/
|
||||||
#define APP_SW_VER_STR "00.00.00.0888"
|
#define APP_SW_VER_STR "00.00.00.0918"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* E N D O F F I L E */
|
/* E N D O F F I L E */
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user