break: before freertos

This commit is contained in:
2025-04-02 02:21:48 +08:00
parent 05668ca262
commit d43730ce15
60 changed files with 48968 additions and 1485 deletions

View File

@ -18,8 +18,10 @@
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "cmsis_os.h"
#include "i2c.h"
#include "spi.h"
#include "tim.h"
#include "usart.h"
#include "gpio.h"
@ -58,6 +60,7 @@
/* USER CODE BEGIN PV */
extern unsigned short esp8266_cnt;
extern unsigned char esp8266_buf[128];
char ONENET_CONNECTED = 0;
uint8_t* dataPtr;
uint8_t* UART1_RxData[40];
uint8_t UART2_RxData;
@ -76,6 +79,7 @@ const char* SEP = "-------------------------\r\n";
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
void MX_FREERTOS_Init(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
@ -86,7 +90,8 @@ void KeyScan(void)
{
if (K1 == GPIO_PIN_RESET)
{
HAL_Delay(5);
// HAL_Delay(5);
osDelay(5);
if (K1 == GPIO_PIN_RESET)
{
HAL_GPIO_TogglePin(RELAY1_GPIO_Port, RELAY1_Pin);
@ -95,7 +100,8 @@ void KeyScan(void)
}
if (K2 == GPIO_PIN_RESET)
{
HAL_Delay(5);
// HAL_Delay(5);
osDelay(5);
if (K2 == GPIO_PIN_RESET)
{
HAL_GPIO_TogglePin(RELAY1_GPIO_Port, RELAY1_Pin);
@ -104,7 +110,8 @@ void KeyScan(void)
}
if (K3 == GPIO_PIN_RESET)
{
HAL_Delay(5);
// HAL_Delay(5);
osDelay(5);
if (K3 == GPIO_PIN_RESET)
{
HAL_GPIO_TogglePin(RELAY1_GPIO_Port, RELAY1_Pin);
@ -113,7 +120,8 @@ void KeyScan(void)
}
if (K4 == GPIO_PIN_RESET)
{
HAL_Delay(5);
// HAL_Delay(5);
osDelay(5);
if (K4 == GPIO_PIN_RESET)
{
HAL_GPIO_TogglePin(RELAY1_GPIO_Port, RELAY1_Pin);
@ -179,6 +187,8 @@ int main(void)
MX_SPI1_Init();
MX_USART1_UART_Init();
MX_USART2_UART_Init();
MX_TIM1_Init();
MX_TIM3_Init();
/* USER CODE BEGIN 2 */
// Retarget uart
@ -190,12 +200,16 @@ int main(void)
OLED_ShowString(0,0,"initializing...",12);
HAL_UARTEx_ReceiveToIdle_IT(&huart1, UART1_RxData, 40);
// HAL_TIM_Base_Start_IT(&htim1);
// HAL_TIM_Base_Start_IT(&htim3);
HAL_UARTEx_ReceiveToIdle_IT(&huart1, (uint8_t*)UART1_RxData, 40);
HAL_UART_Receive_IT(&huart2, &UART2_RxData, 1);
ESP8266_Init();
while (OneNet_DevLink()) {}
OneNET_Subscribe();
ONENET_CONNECTED = 1;
// Init RC522
MFRC_Init();
@ -205,18 +219,25 @@ int main(void)
HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET);
/* USER CODE END 2 */
/* Init scheduler */
osKernelInitialize();
/* Call init function for freertos objects (in cmsis_os2.c) */
MX_FREERTOS_Init();
/* Start scheduler */
osKernelStart();
/* We should never get here as control is now taken by the scheduler */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
KeyScan();
// if (!OneNet_DevLink())
// if (onenet_state())
// {
// OLED_ShowString(0,0,"OneNet online ",12);
// HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET);
// OneNet_SendData();
// HAL_Delay(1000);
// ESP8266_Clear();
// }
// else
// {
@ -224,22 +245,16 @@ int main(void)
// HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET);
// }
IM_ReadFlag = 1; //抄读标志
IM_Read();
HAL_Delay(500);
OneNet_SendData();
HAL_Delay(1000);
ESP8266_Clear();
Display_IM1281B();
// dataPtr = ESP8266_GetIPD(0);
// if (dataPtr != NULL)
// {
// OneNet_RevPro(dataPtr);
// }
// IM_ReadFlag = 1; //抄读标志
// IM_Read();
//
// HAL_Delay(500);
//
// OneNet_SendData();
// HAL_Delay(500);
// ESP8266_Clear();
//
// Display_IM1281B();
// rf_status = PCD_Request(PICC_REQALL, rf_card_type);
//
@ -326,18 +341,19 @@ void SystemClock_Config(void)
}
/* USER CODE BEGIN 4 */
// void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
// {
// if(GPIO_Pin == KEY1_Pin || GPIO_Pin == KEY2_Pin || GPIO_Pin == KEY3_Pin || GPIO_Pin == KEY4_Pin)
// void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){
// if(htim->Instance == TIM1){
// KeyScan();
// }
// else if (htim->Instance == TIM3)
// {
// HAL_GPIO_TogglePin(RELAY1_GPIO_Port, RELAY1_Pin);
// if(HAL_GPIO_ReadPin(RELAY1_GPIO_Port, RELAY1_Pin) == GPIO_PIN_RESET)
// if (ONENET_CONNECTED)
// {
// OLED_ShowString(0, 6, "Relay1: ON ", 12);
// }
// else
// {
// OLED_ShowString(0, 6, "Relay1: OFF", 12);
// dataPtr = ESP8266_GetIPD(0);
// if (dataPtr != NULL)
// {
// OneNet_RevPro(dataPtr);
// }
// }
// }
// }
@ -356,7 +372,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
IM_RecvLen = Size;
IM_RecvDone = 1;
IM_Analyze();
HAL_UARTEx_ReceiveToIdle_IT(&huart1, UART1_RxData, 40);
HAL_UARTEx_ReceiveToIdle_IT(&huart1, (uint8_t*)UART1_RxData, 40);
}
}
@ -374,6 +390,41 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
}
/* USER CODE END 4 */
/**
* @brief Period elapsed callback in non blocking mode
* @note This function is called when TIM4 interrupt took place, inside
* HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
* a global variable "uwTick" used as application time base.
* @param htim : TIM handle
* @retval None
*/
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
/* USER CODE BEGIN Callback 0 */
// if(htim->Instance == TIM1){
// KeyScan();
// }
if (htim->Instance == TIM3)
{
if (ONENET_CONNECTED)
{
dataPtr = ESP8266_GetIPD(0);
if (dataPtr != NULL)
{
OneNet_RevPro(dataPtr);
}
}
}
/* USER CODE END Callback 0 */
if (htim->Instance == TIM4)
{
HAL_IncTick();
}
/* USER CODE BEGIN Callback 1 */
/* USER CODE END Callback 1 */
}
/**
* @brief This function is executed in case of error occurrence.
* @retval None
@ -385,8 +436,10 @@ void Error_Handler(void)
__disable_irq();
while (1)
{
OLED_ShowString(0, 0, "ERROR", 16);
HAL_GPIO_TogglePin(LED0_GPIO_Port, LED0_Pin);
HAL_Delay(200);
uint16_t i = 7200;
while (i--) {}
}
/* USER CODE END Error_Handler_Debug */
}