蓝牙串口引脚改为上拉,解决AT+REBOOT指令硬件死机问题

This commit is contained in:
王绪洁 2025-03-13 14:03:33 +08:00
parent 1c0ffc5afd
commit a5d06b1b53
4 changed files with 35 additions and 31 deletions

View File

@ -73,18 +73,18 @@ uint8_t di_state_last[DI_MAX] = {0};
uint8_t di_state_now[DI_MAX] = {0}; uint8_t di_state_now[DI_MAX] = {0};
/* USER CODE END FunctionPrototypes */ /* USER CODE END FunctionPrototypes */
void start_tcp_task(void const *argument); void start_tcp_task(void const * argument);
void start_led_toggle_task(void const *argument); void start_led_toggle_task(void const * argument);
void start_dac_task(void const *argument); void start_dac_task(void const * argument);
void start_adc_task(void const *argument); void start_adc_task(void const * argument);
void start_gpio_di_do_task(void const *argument); void start_gpio_di_do_task(void const * argument);
void start_ec11_task(void const *argument); void start_ec11_task(void const * argument);
extern void MX_LWIP_Init(void); extern void MX_LWIP_Init(void);
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */ void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
/* GetIdleTaskMemory prototype (linked to static allocation support) */ /* GetIdleTaskMemory prototype (linked to static allocation support) */
void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize); void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize );
/* USER CODE BEGIN GET_IDLE_TASK_MEMORY */ /* USER CODE BEGIN GET_IDLE_TASK_MEMORY */
static StaticTask_t xIdleTaskTCBBuffer; static StaticTask_t xIdleTaskTCBBuffer;
@ -100,12 +100,11 @@ void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, StackTyp
/* USER CODE END GET_IDLE_TASK_MEMORY */ /* USER CODE END GET_IDLE_TASK_MEMORY */
/** /**
* @brief FreeRTOS initialization * @brief FreeRTOS initialization
* @param None * @param None
* @retval None * @retval None
*/ */
void MX_FREERTOS_Init(void) void MX_FREERTOS_Init(void) {
{
/* USER CODE BEGIN Init */ /* USER CODE BEGIN Init */
/* USER CODE END Init */ /* USER CODE END Init */
@ -154,6 +153,7 @@ void MX_FREERTOS_Init(void)
/* USER CODE BEGIN RTOS_THREADS */ /* USER CODE BEGIN RTOS_THREADS */
/* add threads, ... */ /* add threads, ... */
/* USER CODE END RTOS_THREADS */ /* USER CODE END RTOS_THREADS */
} }
/* USER CODE BEGIN Header_start_tcp_task */ /* USER CODE BEGIN Header_start_tcp_task */
@ -163,7 +163,7 @@ void MX_FREERTOS_Init(void)
* @retval None * @retval None
*/ */
/* USER CODE END Header_start_tcp_task */ /* USER CODE END Header_start_tcp_task */
void start_tcp_task(void const *argument) void start_tcp_task(void const * argument)
{ {
/* init code for LWIP */ /* init code for LWIP */
MX_LWIP_Init(); MX_LWIP_Init();
@ -186,7 +186,7 @@ void start_tcp_task(void const *argument)
* @retval None * @retval None
*/ */
/* USER CODE END Header_start_led_toggle_task */ /* USER CODE END Header_start_led_toggle_task */
void start_led_toggle_task(void const *argument) void start_led_toggle_task(void const * argument)
{ {
/* USER CODE BEGIN start_led_toggle_task */ /* USER CODE BEGIN start_led_toggle_task */
/* Infinite loop */ /* Infinite loop */
@ -205,14 +205,14 @@ void start_led_toggle_task(void const *argument)
* @retval None * @retval None
*/ */
/* USER CODE END Header_start_dac_task */ /* USER CODE END Header_start_dac_task */
void start_dac_task(void const *argument) void start_dac_task(void const * argument)
{ {
/* USER CODE BEGIN start_dac_task */ /* USER CODE BEGIN start_dac_task */
dac161s997_init(); dac161s997_init();
/* Infinite loop */ /* Infinite loop */
for (;;) for (;;)
{ {
osThreadSuspend(adc_taskHandle); // 暂停DAC任务防止ADC采集时产生干扰,因为ADC和DAC采用的是同一路SPI但是时序不同 osThreadSuspend(adc_taskHandle); // æšå<EFBFBD>œDAC任务,防止ADC采醿—¶äº§ç”Ÿå¹²æ‰?,å ä¸ºADCåŒDAC采用的是å<C2AF>Œä¸€è·¯SPI,但是时åº<C3A5>ä¸<C3A4>å<EFBFBD>?
dac161s997_output(DAC161S997_1, current_buff[0]); dac161s997_output(DAC161S997_1, current_buff[0]);
dac161s997_output(DAC161S997_2, current_buff[1]); dac161s997_output(DAC161S997_2, current_buff[1]);
osThreadResume(adc_taskHandle); osThreadResume(adc_taskHandle);
@ -228,14 +228,14 @@ void start_dac_task(void const *argument)
* @retval None * @retval None
*/ */
/* USER CODE END Header_start_adc_task */ /* USER CODE END Header_start_adc_task */
void start_adc_task(void const *argument) void start_adc_task(void const * argument)
{ {
/* USER CODE BEGIN start_adc_task */ /* USER CODE BEGIN start_adc_task */
ad7124_setup(); ad7124_setup();
/* Infinite loop */ /* Infinite loop */
for (;;) for (;;)
{ {
osThreadSuspend(dac_taskHandle); // 暂停DAC任务防止ADC采集时产生干扰,因为ADC和DAC采用的是同一路SPI但是时序不同 osThreadSuspend(dac_taskHandle); // æšå<EFBFBD>œDAC任务,防止ADC采醿—¶äº§ç”Ÿå¹²æ‰?,å ä¸ºADCåŒDAC采用的是å<C2AF>Œä¸€è·¯SPI,但是时åº<C3A5>ä¸<C3A4>å<EFBFBD>?
uint8_t ch = 0; uint8_t ch = 0;
for (ch = STOP_NC_ADC; ch < AD7124_CHANNEL_EN_MAX; ch++) for (ch = STOP_NC_ADC; ch < AD7124_CHANNEL_EN_MAX; ch++)
{ {
@ -265,7 +265,7 @@ void start_adc_task(void const *argument)
* @retval None * @retval None
*/ */
/* USER CODE END Header_start_gpio_di_do_task */ /* USER CODE END Header_start_gpio_di_do_task */
void start_gpio_di_do_task(void const *argument) void start_gpio_di_do_task(void const * argument)
{ {
/* USER CODE BEGIN start_gpio_di_do_task */ /* USER CODE BEGIN start_gpio_di_do_task */
/* Infinite loop */ /* Infinite loop */
@ -277,8 +277,8 @@ void start_gpio_di_do_task(void const *argument)
uint8_t tx_data[32] = {0}; uint8_t tx_data[32] = {0};
tx_data[0] = FRAME_HEAD; // 帧头 tx_data[0] = FRAME_HEAD; // 帧头
tx_data[1] = COM_OK; // 状<>?<3F> tx_data[1] = COM_OK; // 状<>?<3F>
tx_data[2] = DEVICE_NUM; // 设备<EFBFBD>? tx_data[2] = DEVICE_NUM; // 设备ï¿??
tx_data[3] = SEND_STATE_CMD; // 命令<EFBFBD>? tx_data[3] = SEND_STATE_CMD; // 命令ï¿??
tx_data[4] = DI_MAX; // 数据长度 tx_data[4] = DI_MAX; // 数据长度
for (di_ch = 0; di_ch < DI_MAX; di_ch++) for (di_ch = 0; di_ch < DI_MAX; di_ch++)
{ {
@ -313,7 +313,7 @@ void start_gpio_di_do_task(void const *argument)
* @retval None * @retval None
*/ */
/* USER CODE END Header_start_ec11_task */ /* USER CODE END Header_start_ec11_task */
void start_ec11_task(void const *argument) void start_ec11_task(void const * argument)
{ {
/* USER CODE BEGIN start_ec11_task */ /* USER CODE BEGIN start_ec11_task */
/* Infinite loop */ /* Infinite loop */

View File

@ -500,7 +500,7 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
*/ */
GPIO_InitStruct.Pin = BLE2_TX_Pin|BLE2_RX_Pin; GPIO_InitStruct.Pin = BLE2_TX_Pin|BLE2_RX_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF7_USART3; GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
@ -564,7 +564,7 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
*/ */
GPIO_InitStruct.Pin = BLE1_TX_Pin|BLE1_RX_Pin; GPIO_InitStruct.Pin = BLE1_TX_Pin|BLE1_RX_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF8_USART6; GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);

View File

@ -1121,7 +1121,7 @@
:1045F0008020009000BF00BF00BF002000907148E5 :1045F0008020009000BF00BF00BF002000907148E5
:104600001038006840F008006E491039086008460C :104600001038006840F008006E491039086008460C
:10461000006800F00800009000BF00BF4FF4407039 :10461000006800F00800009000BF00BF4FF4407039
:1046200001900220029000200390032004900720B4 :1046200001900220029001200390032004900720B3
:10463000059001A96448FDF729FD644864490860B4 :10463000059001A96448FDF729FD644864490860B4
:104640004FF000604860002161488160C1604FF414 :104640004FF000604860002161488160C1604FF414
:1046500080610161002141618161C161016241624A :1046500080610161002141618161C161016241624A
@ -1136,7 +1136,7 @@
:1046E000091D08600846006800F02000009000BF27 :1046E000091D08600846006800F02000009000BF27
:1046F00000BF00BF0020009032481038006840F032 :1046F00000BF00BF0020009032481038006840F032
:1047000004003049103908600846006800F00400D1 :1047000004003049103908600846006800F00400D1
:10471000009000BF00BFC020019002200290002046 :10471000009000BF00BFC020019002200290012045
:104720000390032004900820059001A92B48FDF771 :104720000390032004900820059001A92B48FDF771
:10473000ADFC2B482B4908608005486000212948C2 :10473000ADFC2B482B4908608005486000212948C2
:104740008160C1604FF4806101610021416181613C :104740008160C1604FF4806101610021416181613C

View File

@ -419,12 +419,14 @@ PC4.Mode=RMII
PC4.Signal=ETH_RXD0 PC4.Signal=ETH_RXD0
PC5.Mode=RMII PC5.Mode=RMII
PC5.Signal=ETH_RXD1 PC5.Signal=ETH_RXD1
PC6.GPIOParameters=GPIO_Label PC6.GPIOParameters=GPIO_PuPd,GPIO_Label
PC6.GPIO_Label=BLE1_TX PC6.GPIO_Label=BLE1_TX
PC6.GPIO_PuPd=GPIO_PULLUP
PC6.Mode=Asynchronous PC6.Mode=Asynchronous
PC6.Signal=USART6_TX PC6.Signal=USART6_TX
PC7.GPIOParameters=GPIO_Label PC7.GPIOParameters=GPIO_PuPd,GPIO_Label
PC7.GPIO_Label=BLE1_RX PC7.GPIO_Label=BLE1_RX
PC7.GPIO_PuPd=GPIO_PULLUP
PC7.Mode=Asynchronous PC7.Mode=Asynchronous
PC7.Signal=USART6_RX PC7.Signal=USART6_RX
PC8.GPIOParameters=GPIO_PuPd,GPIO_Label PC8.GPIOParameters=GPIO_PuPd,GPIO_Label
@ -514,13 +516,15 @@ PD7.GPIO_PuPd=GPIO_PULLUP
PD7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH PD7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PD7.Locked=true PD7.Locked=true
PD7.Signal=GPIO_Output PD7.Signal=GPIO_Output
PD8.GPIOParameters=GPIO_Label PD8.GPIOParameters=GPIO_PuPd,GPIO_Label
PD8.GPIO_Label=BLE2_TX PD8.GPIO_Label=BLE2_TX
PD8.GPIO_PuPd=GPIO_PULLUP
PD8.Locked=true PD8.Locked=true
PD8.Mode=Asynchronous PD8.Mode=Asynchronous
PD8.Signal=USART3_TX PD8.Signal=USART3_TX
PD9.GPIOParameters=GPIO_Label PD9.GPIOParameters=GPIO_PuPd,GPIO_Label
PD9.GPIO_Label=BLE2_RX PD9.GPIO_Label=BLE2_RX
PD9.GPIO_PuPd=GPIO_PULLUP
PD9.Locked=true PD9.Locked=true
PD9.Mode=Asynchronous PD9.Mode=Asynchronous
PD9.Signal=USART3_RX PD9.Signal=USART3_RX