break: before freertos
This commit is contained in:
129
Core/Src/main.c
129
Core/Src/main.c
@ -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 */
|
||||
}
|
||||
|
Reference in New Issue
Block a user