This commit is contained in:
parent
8ee08d8ebf
commit
798941886f
|
@ -61,6 +61,7 @@ osThreadId dac_taskHandle;
|
|||
osThreadId adc_taskHandle;
|
||||
osThreadId gpio_di_do_taskHandle;
|
||||
osThreadId ec11_taskHandle;
|
||||
osThreadId lcd_taskHandle;
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* USER CODE BEGIN FunctionPrototypes */
|
||||
|
@ -80,6 +81,7 @@ void start_dac_task(void const *argument);
|
|||
void start_adc_task(void const *argument);
|
||||
void start_gpio_di_do_task(void const *argument);
|
||||
void start_ec11_task(void const *argument);
|
||||
void start_lcd_task(void const *argument);
|
||||
|
||||
extern void MX_LWIP_Init(void);
|
||||
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
|
||||
|
@ -152,6 +154,10 @@ void MX_FREERTOS_Init(void)
|
|||
osThreadDef(ec11_task, start_ec11_task, osPriorityNormal, 0, 128);
|
||||
ec11_taskHandle = osThreadCreate(osThread(ec11_task), NULL);
|
||||
|
||||
/* definition and creation of lcd_task */
|
||||
osThreadDef(lcd_task, start_lcd_task, osPriorityIdle, 0, 512);
|
||||
lcd_taskHandle = osThreadCreate(osThread(lcd_task), NULL);
|
||||
|
||||
/* USER CODE BEGIN RTOS_THREADS */
|
||||
/* add threads, ... */
|
||||
/* USER CODE END RTOS_THREADS */
|
||||
|
@ -173,7 +179,7 @@ void start_tcp_task(void const *argument)
|
|||
/* Infinite loop */
|
||||
for (;;)
|
||||
{
|
||||
uart_lcd_draw_ipaddr();
|
||||
// uart_lcd_draw_ipaddr();
|
||||
osThreadTerminate(NULL);
|
||||
}
|
||||
/* USER CODE END start_tcp_task */
|
||||
|
@ -201,7 +207,8 @@ void start_led_toggle_task(void const *argument)
|
|||
ec11_data.confirm_key_flag_last++;
|
||||
if (ec11_data.confirm_key_flag_last > 3)
|
||||
{
|
||||
HAL_GPIO_TogglePin(LED2_G_GPIO_Port, LED2_G_Pin);
|
||||
current_buff[0] = (float)uart_lcd_state.current_value[0];
|
||||
current_buff[1] = (float)uart_lcd_state.current_value[1];
|
||||
ec11_data.confirm_key_flag_last = 0;
|
||||
ec11_data.confirm_key_flag = 0;
|
||||
}
|
||||
|
@ -209,11 +216,25 @@ void start_led_toggle_task(void const *argument)
|
|||
else if (ec11_data.confirm_key_flag == 2)
|
||||
{
|
||||
ec11_data.confirm_key_flag_last = 0;
|
||||
HAL_GPIO_TogglePin(LED2_R_GPIO_Port, LED2_R_Pin);
|
||||
ec11_data.confirm_key_flag = 0;
|
||||
|
||||
if (uart_lcd_state.key_state[0] == 1)
|
||||
{
|
||||
uart_lcd_state.key_state[0] = 0;
|
||||
uart_lcd_state.key_state[1] = 1;
|
||||
uart_lcd_state.key_state[2] = 0;
|
||||
}
|
||||
else if (uart_lcd_state.key_state[0] == 0)
|
||||
{
|
||||
uart_lcd_state.key_state[0] = 1;
|
||||
uart_lcd_state.key_state[1] = 0;
|
||||
uart_lcd_state.key_state[2] = 1;
|
||||
}
|
||||
|
||||
vTaskDelay(1000);
|
||||
ec11_data.confirm_key_flag = 0;
|
||||
uart_lcd_channel_switch(uart_lcd_state.key_state[0]);
|
||||
}
|
||||
|
||||
vTaskDelay(400);
|
||||
}
|
||||
/* USER CODE END start_led_toggle_task */
|
||||
}
|
||||
|
@ -264,11 +285,11 @@ void start_adc_task(void const *argument)
|
|||
// HAL_GPIO_TogglePin(LED2_Y_GPIO_Port, LED2_Y_Pin);
|
||||
if (huart5.RxState == HAL_UART_STATE_READY)
|
||||
{
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart5, hart1_uart5.rx_data_temp, ARRAY_LEN(hart1_uart5.rx_data_temp)); // TODO 后续修改此处,改为输出电流电流
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart5, hart1_uart5.rx_data_temp, ARRAY_LEN(hart1_uart5.rx_data_temp));
|
||||
}
|
||||
if (huart2.RxState == HAL_UART_STATE_READY)
|
||||
{
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart2, hart2_uart2.rx_data_temp, ARRAY_LEN(hart2_uart2.rx_data_temp)); // TODO 后续修改此处,改为修改输出通道
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart2, hart2_uart2.rx_data_temp, ARRAY_LEN(hart2_uart2.rx_data_temp));
|
||||
}
|
||||
osThreadResume(dac_taskHandle);
|
||||
vTaskDelay(10);
|
||||
|
@ -295,8 +316,8 @@ void start_gpio_di_do_task(void const *argument)
|
|||
uint8_t tx_data[32] = {0};
|
||||
tx_data[0] = FRAME_HEAD; // 帧头
|
||||
tx_data[1] = COM_OK; // 状<>?<3F>码
|
||||
tx_data[2] = DEVICE_NUM; // 设备<E8AEBE>?
|
||||
tx_data[3] = SEND_STATE_CMD; // 命令<E591BD>?
|
||||
tx_data[2] = DEVICE_NUM; // 设备<E8AEBE>??
|
||||
tx_data[3] = SEND_STATE_CMD; // 命令<E591BD>??
|
||||
tx_data[4] = DI_MAX; // 数据长度
|
||||
for (di_ch = 0; di_ch < DI_MAX; di_ch++)
|
||||
{
|
||||
|
@ -339,11 +360,78 @@ void start_ec11_task(void const *argument)
|
|||
{
|
||||
ec11_data.direction = __HAL_TIM_IS_TIM_COUNTING_DOWN(&htim1);
|
||||
ec11_data.encode_num = (short)__HAL_TIM_GET_COUNTER(&htim1);
|
||||
vTaskDelay(10);
|
||||
if ((ec11_data.direction == 0) && (ec11_data.encode_num > ec11_data.encode_num_last))
|
||||
{
|
||||
if (uart_lcd_state.key_state[0] == 0)
|
||||
{
|
||||
uart_lcd_state.current_value[0] += 1;
|
||||
if (uart_lcd_state.current_value[0] > 20)
|
||||
{
|
||||
uart_lcd_state.current_value[0] = 20;
|
||||
}
|
||||
}
|
||||
else if (uart_lcd_state.key_state[0] == 1)
|
||||
{
|
||||
uart_lcd_state.current_value[1] += 1;
|
||||
if (uart_lcd_state.current_value[1] > 20)
|
||||
{
|
||||
uart_lcd_state.current_value[1] = 20;
|
||||
}
|
||||
}
|
||||
// current_buff[0] = (float)uart_lcd_state.current_value[0];
|
||||
}
|
||||
if ((ec11_data.direction == 1) && (ec11_data.encode_num < ec11_data.encode_num_last))
|
||||
{
|
||||
if (uart_lcd_state.key_state[0] == 0)
|
||||
{
|
||||
if (uart_lcd_state.current_value[0] < 2)
|
||||
{
|
||||
uart_lcd_state.current_value[0] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
uart_lcd_state.current_value[0] -= 1;
|
||||
}
|
||||
}
|
||||
else if (uart_lcd_state.key_state[0] == 1)
|
||||
{
|
||||
if (uart_lcd_state.current_value[1] < 2)
|
||||
{
|
||||
uart_lcd_state.current_value[1] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
uart_lcd_state.current_value[1] -= 1;
|
||||
}
|
||||
}
|
||||
// current_buff[1] = (float)uart_lcd_state.current_value[1];
|
||||
}
|
||||
uart_lcd_current_out(uart_lcd_state.key_state[0]);
|
||||
ec11_data.encode_num_last = ec11_data.encode_num;
|
||||
vTaskDelay(100);
|
||||
}
|
||||
/* USER CODE END start_ec11_task */
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN Header_start_lcd_task */
|
||||
/**
|
||||
* @brief Function implementing the lcd_task thread.
|
||||
* @param argument: Not used
|
||||
* @retval None
|
||||
*/
|
||||
/* USER CODE END Header_start_lcd_task */
|
||||
void start_lcd_task(void const *argument)
|
||||
{
|
||||
/* USER CODE BEGIN start_lcd_task */
|
||||
uart_lcd_init();
|
||||
/* Infinite loop */
|
||||
for (;;)
|
||||
{
|
||||
vTaskDelay(10);
|
||||
}
|
||||
/* USER CODE END start_lcd_task */
|
||||
}
|
||||
|
||||
/* Private application code --------------------------------------------------*/
|
||||
/* USER CODE BEGIN Application */
|
||||
|
||||
|
|
|
@ -126,7 +126,7 @@ int main(void)
|
|||
MX_TIM1_Init();
|
||||
MX_USART1_UART_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
/*配置各串口的DMA接收*/
|
||||
/*酝置坄串坣的DMA接收*/
|
||||
// start
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart4, lcd_uart4.rx_data_temp, ARRAY_LEN(lcd_uart4.rx_data_temp));
|
||||
HAL_UARTEx_ReceiveToIdle_DMA(&huart6, ble1_uart6.rx_data_temp, ARRAY_LEN(ble1_uart6.rx_data_temp));
|
||||
|
@ -137,7 +137,7 @@ int main(void)
|
|||
// end
|
||||
hart_ht1200m_reset(); // 初始化HT1200M模块
|
||||
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); // PWM输出,用于驱动HT1200M模块
|
||||
HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL); // 旋转编码器输<EFBFBD><EFBFBD>?
|
||||
HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL); // 旋转编砝器输<EFBFBD>??
|
||||
/* USER CODE END 2 */
|
||||
|
||||
/* Call init function for freertos objects (in freertos.c) */
|
||||
|
@ -189,8 +189,7 @@ void SystemClock_Config(void)
|
|||
|
||||
/** Initializes the CPU, AHB and APB buses clocks
|
||||
*/
|
||||
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|
||||
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
|
||||
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
|
||||
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
|
||||
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
|
||||
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
|
||||
|
@ -219,7 +218,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
|
|||
gnetif.ip_addr = ipaddr;
|
||||
if (flash_write_data(FLASH_USER_START_ADDR, usb_uart1.rx_data_temp, Size) == HAL_OK)
|
||||
{
|
||||
uart_lcd_draw_ipaddr();
|
||||
// uart_lcd_draw_ipaddr();
|
||||
}
|
||||
}
|
||||
if (huart == &huart4)
|
||||
|
@ -290,6 +289,10 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
|
|||
{
|
||||
HART2_RTS_RECEIVE;
|
||||
}
|
||||
if (huart == &huart4)
|
||||
{
|
||||
HART2_RTS_RECEIVE;
|
||||
}
|
||||
}
|
||||
/* USER CODE END 4 */
|
||||
|
||||
|
@ -306,7 +309,8 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
|
|||
/* USER CODE BEGIN Callback 0 */
|
||||
|
||||
/* USER CODE END Callback 0 */
|
||||
if (htim->Instance == TIM4) {
|
||||
if (htim->Instance == TIM4)
|
||||
{
|
||||
HAL_IncTick();
|
||||
}
|
||||
/* USER CODE BEGIN Callback 1 */
|
||||
|
|
|
@ -66,9 +66,8 @@ void MX_UART4_Init(void)
|
|||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN UART4_Init 2 */
|
||||
//__HAL_UART_ENABLE_IT(&huart4, UART_IT_IDLE); // 使能IDLE䏿–
|
||||
//__HAL_UART_ENABLE_IT(&huart4, UART_IT_IDLE); // 使č˝IDLEä¸ć
|
||||
/* USER CODE END UART4_Init 2 */
|
||||
|
||||
}
|
||||
/* UART5 init function */
|
||||
void MX_UART5_Init(void)
|
||||
|
@ -94,10 +93,9 @@ void MX_UART5_Init(void)
|
|||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN UART5_Init 2 */
|
||||
// __HAL_UART_ENABLE_IT(&huart5, UART_IT_RXNE); // æŽ¥æ”¶ä¸æ–
|
||||
// __HAL_UART_ENABLE_IT(&huart5, UART_IT_IDLE); // ç©ºé—²ä¸æ–
|
||||
// __HAL_UART_ENABLE_IT(&huart5, UART_IT_RXNE); // ćĽćśä¸ć
|
||||
// __HAL_UART_ENABLE_IT(&huart5, UART_IT_IDLE); // 犺é˛ä¸ć
|
||||
/* USER CODE END UART5_Init 2 */
|
||||
|
||||
}
|
||||
/* USART1 init function */
|
||||
|
||||
|
@ -126,7 +124,6 @@ void MX_USART1_UART_Init(void)
|
|||
/* USER CODE BEGIN USART1_Init 2 */
|
||||
|
||||
/* USER CODE END USART1_Init 2 */
|
||||
|
||||
}
|
||||
/* USART2 init function */
|
||||
|
||||
|
@ -153,10 +150,9 @@ void MX_USART2_UART_Init(void)
|
|||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN USART2_Init 2 */
|
||||
// __HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE); // æŽ¥æ”¶ä¸æ–
|
||||
// __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE); // 使能IDLE䏿–
|
||||
// __HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE); // ćĽćśä¸ć
|
||||
// __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE); // 使č˝IDLEä¸ć
|
||||
/* USER CODE END USART2_Init 2 */
|
||||
|
||||
}
|
||||
/* USART3 init function */
|
||||
|
||||
|
@ -185,7 +181,6 @@ void MX_USART3_UART_Init(void)
|
|||
/* USER CODE BEGIN USART3_Init 2 */
|
||||
|
||||
/* USER CODE END USART3_Init 2 */
|
||||
|
||||
}
|
||||
/* USART6 init function */
|
||||
|
||||
|
@ -214,7 +209,6 @@ void MX_USART6_UART_Init(void)
|
|||
/* USER CODE BEGIN USART6_Init 2 */
|
||||
|
||||
/* USER CODE END USART6_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
void HAL_UART_MspInit(UART_HandleTypeDef *uartHandle)
|
||||
|
@ -767,23 +761,19 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
|||
}
|
||||
|
||||
/* USER CODE BEGIN 1 */
|
||||
|
||||
/**
|
||||
* @brief 使用DMAæ–¹å¼<EFBFBD>通过串å<EFBFBD>£å<EFBFBD>‘é?<EFBFBD>æ•°æ<EFBFBD>?
|
||||
* @brief 使用DMA方式通过UART发送数据
|
||||
*
|
||||
* 该函数使用DMAæ–¹å¼<EFBFBD>通过指定的串å<EFBFBD>£å<EFBFBD>‘é€<EFBFBD>指定长度的数æ<EFBFBD>®ã€?
|
||||
* 通过指定的UART句柄,使用DMA方式发送数据。
|
||||
*
|
||||
* @param huart UART_HandleTypeDef结构体指针,指å<EFBFBD>‘éœ?è¦<EFBFBD>使用的串å<EFBFBD>£å<EFBFBD>¥æŸ„
|
||||
* @param buf 指å<EFBFBD>‘éœ?è¦<EFBFBD>å<EFBFBD>‘é€<EFBFBD>的数æ<EFBFBD>®ç¼“冲区的指针
|
||||
* @param len éœ?è¦<EFBFBD>å<EFBFBD>‘é€<EFBFBD>的数æ<EFBFBD>®é•¿åº¦
|
||||
*
|
||||
* @return æ— è¿”å›žå??
|
||||
*
|
||||
* @note 如果å<EFBFBD>‘é?<EFBFBD>过程ä¸å‡ºçŽ°é”™è¯¯ï¼Œä¼šè°ƒç”¨Error_Handler函数处ç<EFBFBD>†é”™è¯¯
|
||||
* @param huart UART句柄
|
||||
* @param buf 待发送的数据缓冲区指针
|
||||
* @param len 待发送的数据长度
|
||||
*/
|
||||
void dma_usart_send(UART_HandleTypeDef *huart, uint8_t *buf, uint8_t len)
|
||||
{
|
||||
if (HAL_UART_Transmit_DMA(huart, buf, len) != HAL_OK) // åˆ¤æ–æ˜¯å<C2AF>¦å<C2A6>‘é?<3F>æ£å¸¸ï¼Œå¦‚æžœå‡ºçŽ°å¼‚å¸¸åˆ™è¿›å…¥å¼‚å¸¸ä¸æ–函æ•?
|
||||
|
||||
if (HAL_UART_Transmit_DMA(huart, buf, len) != HAL_OK) // ĺ¤ććŻĺŚĺé?ćŁĺ¸¸ďźĺŚćĺşç°ĺźĺ¸¸ĺčżĺ
Ľĺźĺ¸¸ä¸ćĺ˝ć?
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
// File: STM32F405_415_407_417_427_437_429_439.dbgconf
|
||||
// Version: 1.0.0
|
||||
// Note: refer to STM32F405/415 STM32F407/417 STM32F427/437 STM32F429/439 reference manual (RM0090)
|
||||
// refer to STM32F40x STM32F41x datasheets
|
||||
// refer to STM32F42x STM32F43x 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 register (DBGMCU_APB1_FZ)
|
||||
// <i> Reserved bits must be kept at reset value
|
||||
// <o.26> DBG_CAN2_STOP <i> CAN2 stopped when core is halted
|
||||
// <o.25> DBG_CAN1_STOP <i> CAN2 stopped when core is halted
|
||||
// <o.23> DBG_I2C3_SMBUS_TIMEOUT <i> I2C3 SMBUS timeout mode stopped when core is halted
|
||||
// <o.22> DBG_I2C2_SMBUS_TIMEOUT <i> I2C2 SMBUS timeout mode stopped when core is halted
|
||||
// <o.21> DBG_I2C1_SMBUS_TIMEOUT <i> I2C1 SMBUS timeout mode stopped when core is halted
|
||||
// <o.12> DBG_IWDG_STOP <i> Independent watchdog stopped when core is halted
|
||||
// <o.11> DBG_WWDG_STOP <i> Window watchdog stopped when core is halted
|
||||
// <o.10> DBG_RTC_STOP <i> RTC stopped when core is halted
|
||||
// <o.8> DBG_TIM14_STOP <i> TIM14 counter stopped when core is halted
|
||||
// <o.7> DBG_TIM13_STOP <i> TIM13 counter stopped when core is halted
|
||||
// <o.6> DBG_TIM12_STOP <i> TIM12 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_Fz = 0x00000000;
|
||||
|
||||
// <h> Debug MCU APB2 freeze register (DBGMCU_APB2_FZ)
|
||||
// <i> Reserved bits must be kept at reset value
|
||||
// <o.18> DBG_TIM11_STOP <i> TIM11 counter stopped when core is halted
|
||||
// <o.17> DBG_TIM10_STOP <i> TIM10 counter stopped when core is halted
|
||||
// <o.16> DBG_TIM9_STOP <i> TIM9 counter stopped when core is halted
|
||||
// <o.1> DBG_TIM8_STOP <i> TIM8 counter stopped when core is halted
|
||||
// <o.0> DBG_TIM1_STOP <i> TIM1 counter stopped when core is halted
|
||||
// </h>
|
||||
DbgMCU_APB2_Fz = 0x00000000;
|
||||
|
||||
// <<< end of configuration section >>>
|
File diff suppressed because one or more lines are too long
|
@ -148,13 +148,61 @@
|
|||
<Name>-U090F00028316303030303032 -O2254 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
|
||||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint/>
|
||||
<Breakpoint>
|
||||
<Bp>
|
||||
<Number>0</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>1404</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>134235956</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>1</BreakIfRCount>
|
||||
<Filename>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression>\\signal_generator\../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c\1404</Expression>
|
||||
</Bp>
|
||||
<Bp>
|
||||
<Number>1</Number>
|
||||
<Type>0</Type>
|
||||
<LineNumber>1447</LineNumber>
|
||||
<EnabledFlag>1</EnabledFlag>
|
||||
<Address>134236092</Address>
|
||||
<ByteObject>0</ByteObject>
|
||||
<HtxType>0</HtxType>
|
||||
<ManyObjects>0</ManyObjects>
|
||||
<SizeOfObject>0</SizeOfObject>
|
||||
<BreakByAccess>0</BreakByAccess>
|
||||
<BreakIfRCount>1</BreakIfRCount>
|
||||
<Filename>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c</Filename>
|
||||
<ExecCommand></ExecCommand>
|
||||
<Expression>\\signal_generator\../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c\1447</Expression>
|
||||
</Bp>
|
||||
</Breakpoint>
|
||||
<WatchWindow1>
|
||||
<Ww>
|
||||
<count>0</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>ec11_data,0x0A</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>1</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>uart_lcd_state</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>2</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>lcd_channel</ItemText>
|
||||
</Ww>
|
||||
<Ww>
|
||||
<count>3</count>
|
||||
<WinNumber>1</WinNumber>
|
||||
<ItemText>current_buff</ItemText>
|
||||
</Ww>
|
||||
</WatchWindow1>
|
||||
<Tracepoint>
|
||||
<THDelay>0</THDelay>
|
||||
|
@ -418,7 +466,7 @@
|
|||
|
||||
<Group>
|
||||
<GroupName>Drivers/STM32F4xx_HAL_Driver</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
|
@ -1846,7 +1894,7 @@
|
|||
|
||||
<Group>
|
||||
<GroupName>User/driver</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
|
|
|
@ -339,7 +339,7 @@
|
|||
<MiscControls></MiscControls>
|
||||
<Define>USE_HAL_DRIVER,STM32F407xx</Define>
|
||||
<Undefine></Undefine>
|
||||
<IncludePath>../Core/Inc;../LWIP/App;../LWIP/Target;../Middlewares/Third_Party/LwIP/src/include;../Middlewares/Third_Party/LwIP/system;../Drivers/STM32F4xx_HAL_Driver/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy;../Middlewares/Third_Party/FreeRTOS/Source/include;../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS;../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F;../Drivers/BSP/Components/lan8742;../Middlewares/Third_Party/LwIP/src/include/netif/ppp;../Drivers/CMSIS/Device/ST/STM32F4xx/Include;../Middlewares/Third_Party/LwIP/src/include/lwip;../Middlewares/Third_Party/LwIP/src/include/lwip/apps;../Middlewares/Third_Party/LwIP/src/include/lwip/priv;../Middlewares/Third_Party/LwIP/src/include/lwip/prot;../Middlewares/Third_Party/LwIP/src/include/netif;../Middlewares/Third_Party/LwIP/src/include/compat/posix;../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa;../Middlewares/Third_Party/LwIP/src/include/compat/posix/net;../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys;../Middlewares/Third_Party/LwIP/src/include/compat/stdc;../Middlewares/Third_Party/LwIP/system/arch;../Drivers/CMSIS/Include;..\User\application\inc;..\User\board\inc;..\User\driver;..\User\system</IncludePath>
|
||||
<IncludePath>../Core/Inc;../LWIP/App;../LWIP/Target;../Middlewares/Third_Party/LwIP/src/include;../Middlewares/Third_Party/LwIP/system;../Drivers/STM32F4xx_HAL_Driver/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy;../Middlewares/Third_Party/FreeRTOS/Source/include;../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS;../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F;../Drivers/BSP/Components/lan8742;../Middlewares/Third_Party/LwIP/src/include/netif/ppp;../Drivers/CMSIS/Device/ST/STM32F4xx/Include;../Middlewares/Third_Party/LwIP/src/include/lwip;../Middlewares/Third_Party/LwIP/src/include/lwip/apps;../Middlewares/Third_Party/LwIP/src/include/lwip/priv;../Middlewares/Third_Party/LwIP/src/include/lwip/prot;../Middlewares/Third_Party/LwIP/src/include/netif;../Middlewares/Third_Party/LwIP/src/include/compat/posix;../Middlewares/Third_Party/LwIP/src/include/compat/posix/arpa;../Middlewares/Third_Party/LwIP/src/include/compat/posix/net;../Middlewares/Third_Party/LwIP/src/include/compat/posix/sys;../Middlewares/Third_Party/LwIP/src/include/compat/stdc;../Middlewares/Third_Party/LwIP/system/arch;../Drivers/CMSIS/Include;../User/application/inc;../User/board/inc;../User/driver;../User/system</IncludePath>
|
||||
</VariousControls>
|
||||
</Cads>
|
||||
<Aads>
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[EXTDLL]
|
||||
Count=0
|
File diff suppressed because it is too large
Load Diff
|
@ -3,7 +3,24 @@
|
|||
#include "lwip.h"
|
||||
|
||||
extern ip4_addr_t ipaddr;
|
||||
uint8_t ip_addr[24] = {0};
|
||||
uart_lcd_t uart_lcd_state = {0};
|
||||
uint8_t uart_lcd_data[24] = {0xEE, 0xB1, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x01, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0xFF, 0xFC, 0xFF, 0xFF};
|
||||
|
||||
static void uart_lcd_current_channel1(void);
|
||||
static void uart_lcd_current_channel2(void);
|
||||
|
||||
static void uart_lcd_current_channel1(void)
|
||||
{
|
||||
// uint8_t uart_lcd_data[24] = {0xEE, 0xB1, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x01, 0x01, 0x00, 0x03, 0x00, 0x01, 0x00, 0xFF, 0xFC, 0xFF, 0xFF};
|
||||
dma_usart_send(&huart4, uart_lcd_data, ARRAY_LEN(uart_lcd_data));
|
||||
}
|
||||
uint8_t uart_lcd_data2[24] = {0xEE, 0xB1, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0x01, 0x01, 0xFF, 0xFC, 0xFF, 0xFF};
|
||||
|
||||
static void uart_lcd_current_channel2(void)
|
||||
{
|
||||
dma_usart_send(&huart4, uart_lcd_data2, ARRAY_LEN(uart_lcd_data2));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 通过UART向LCD屏幕绘制IP地址
|
||||
*
|
||||
|
@ -13,6 +30,7 @@ uint8_t ip_addr[24] = {0};
|
|||
*/
|
||||
void uart_lcd_draw_ipaddr(void)
|
||||
{
|
||||
uint8_t ip_addr[24] = {0};
|
||||
// 串口发送的固定值为串口屏指令指定的帧头帧尾
|
||||
ip_addr[0] = 0xEE; // 帧头
|
||||
ip_addr[1] = 0xB1;
|
||||
|
@ -29,3 +47,52 @@ void uart_lcd_draw_ipaddr(void)
|
|||
ip_addr[10 + strlen(ip_addr_str)] = 0xFF;
|
||||
dma_usart_send(&huart4, ip_addr, ARRAY_LEN(ip_addr));
|
||||
}
|
||||
|
||||
void uart_lcd_init(void)
|
||||
{
|
||||
uart_lcd_state.page_num = 0;
|
||||
uart_lcd_state.key_state[0] = 0;
|
||||
uart_lcd_state.key_state[1] = 1;
|
||||
uart_lcd_state.key_state[2] = 0;
|
||||
uart_lcd_state.current_value[0] = 0;
|
||||
uart_lcd_state.current_value[1] = 0;
|
||||
uart_lcd_channel_switch(uart_lcd_state.key_state[0]);
|
||||
HAL_Delay(10);
|
||||
uart_lcd_current_out(0);
|
||||
HAL_Delay(10);
|
||||
uart_lcd_current_out(1);
|
||||
}
|
||||
uint8_t lcd_channel[15] = {0xEE, 0xB1, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0xFF, 0xFF};
|
||||
|
||||
void uart_lcd_current_out(uint8_t channel)
|
||||
{
|
||||
|
||||
if (channel == 0)
|
||||
{
|
||||
lcd_channel[6] = 0x04;
|
||||
lcd_channel[10] = uart_lcd_state.current_value[0];
|
||||
dma_usart_send(&huart4, lcd_channel, ARRAY_LEN(lcd_channel));
|
||||
}
|
||||
else if (channel == 1)
|
||||
{
|
||||
lcd_channel[6] = 0x05;
|
||||
lcd_channel[10] = uart_lcd_state.current_value[1];
|
||||
dma_usart_send(&huart4, lcd_channel, ARRAY_LEN(lcd_channel));
|
||||
}
|
||||
}
|
||||
|
||||
void uart_lcd_channel_switch(uint8_t channel)
|
||||
{
|
||||
switch (channel)
|
||||
{
|
||||
case 0:
|
||||
uart_lcd_current_channel1();
|
||||
break;
|
||||
case 1:
|
||||
uart_lcd_current_channel2();
|
||||
break;
|
||||
default:
|
||||
uart_lcd_current_channel1();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,14 +2,27 @@
|
|||
#define __UART_LCD_H__
|
||||
|
||||
#include "main.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t page_num;
|
||||
uint8_t key_state[3];
|
||||
uint8_t current_value[2];
|
||||
uint8_t lcd_flag;
|
||||
} uart_lcd_t;
|
||||
extern uart_lcd_t uart_lcd_state;
|
||||
typedef struct
|
||||
{
|
||||
uint8_t confirm_key_flag;
|
||||
uint8_t confirm_key_flag_last;
|
||||
int direction;
|
||||
int encode_num_last;
|
||||
int encode_num;
|
||||
} ec11_t;
|
||||
extern ec11_t ec11_data;
|
||||
|
||||
void uart_lcd_draw_ipaddr(void);
|
||||
void uart_lcd_init(void);
|
||||
void uart_lcd_current_out(uint8_t channel);
|
||||
void uart_lcd_channel_switch(uint8_t channel);
|
||||
#endif
|
||||
|
|
|
@ -139,7 +139,7 @@ ETH.IPParameters=MediaInterface
|
|||
ETH.MediaInterface=HAL_ETH_RMII_MODE
|
||||
FREERTOS.FootprintOK=true
|
||||
FREERTOS.IPParameters=Tasks01,configMAX_TASK_NAME_LEN,configENABLE_FPU,configMAX_PRIORITIES,FootprintOK
|
||||
FREERTOS.Tasks01=lwip_task,2,512,start_tcp_task,Default,NULL,Dynamic,NULL,NULL;led_task,-2,128,start_led_toggle_task,Default,NULL,Dynamic,NULL,NULL;dac_task,0,512,start_dac_task,Default,NULL,Dynamic,NULL,NULL;adc_task,-1,128,start_adc_task,Default,NULL,Dynamic,NULL,NULL;gpio_di_do_task,0,128,start_gpio_di_do_task,Default,NULL,Dynamic,NULL,NULL;ec11_task,0,128,start_ec11_task,Default,NULL,Dynamic,NULL,NULL
|
||||
FREERTOS.Tasks01=lwip_task,2,512,start_tcp_task,Default,NULL,Dynamic,NULL,NULL;led_task,-2,128,start_led_toggle_task,Default,NULL,Dynamic,NULL,NULL;dac_task,0,512,start_dac_task,Default,NULL,Dynamic,NULL,NULL;adc_task,-1,128,start_adc_task,Default,NULL,Dynamic,NULL,NULL;gpio_di_do_task,0,128,start_gpio_di_do_task,Default,NULL,Dynamic,NULL,NULL;ec11_task,0,128,start_ec11_task,Default,NULL,Dynamic,NULL,NULL;lcd_task,-3,512,start_lcd_task,Default,NULL,Dynamic,NULL,NULL
|
||||
FREERTOS.configENABLE_FPU=1
|
||||
FREERTOS.configMAX_PRIORITIES=32
|
||||
FREERTOS.configMAX_TASK_NAME_LEN=24
|
||||
|
|
Loading…
Reference in New Issue