第二路蓝牙修改为ENCODE

This commit is contained in:
王绪洁 2025-03-17 11:48:15 +08:00
parent 0565ff757c
commit 27686f4f1f
17 changed files with 6247 additions and 6369 deletions

View File

@ -23,7 +23,8 @@
#define __MAIN_H #define __MAIN_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
@ -89,6 +90,8 @@ extern "C" {
void Error_Handler(void); void Error_Handler(void);
/* USER CODE BEGIN EFP */ /* USER CODE BEGIN EFP */
#define ENCODE_TIM8 1
#define BLE2_USART6 0
/* USER CODE END EFP */ /* USER CODE END EFP */
@ -120,6 +123,8 @@ void Error_Handler(void);
#define LED2_G_GPIO_Port GPIOE #define LED2_G_GPIO_Port GPIOE
#define LED2_Y_Pin GPIO_PIN_14 #define LED2_Y_Pin GPIO_PIN_14
#define LED2_Y_GPIO_Port GPIOE #define LED2_Y_GPIO_Port GPIOE
#define ENCODE_Z_Pin GPIO_PIN_14
#define ENCODE_Z_GPIO_Port GPIOB
#define BLE2_TX_Pin GPIO_PIN_8 #define BLE2_TX_Pin GPIO_PIN_8
#define BLE2_TX_GPIO_Port GPIOD #define BLE2_TX_GPIO_Port GPIOD
#define BLE2_RX_Pin GPIO_PIN_9 #define BLE2_RX_Pin GPIO_PIN_9
@ -134,10 +139,6 @@ void Error_Handler(void);
#define DO_CH2_GPIO_Port GPIOD #define DO_CH2_GPIO_Port GPIOD
#define DO_EN_Pin GPIO_PIN_15 #define DO_EN_Pin GPIO_PIN_15
#define DO_EN_GPIO_Port GPIOD #define DO_EN_GPIO_Port GPIOD
#define BLE1_TX_Pin GPIO_PIN_6
#define BLE1_TX_GPIO_Port GPIOC
#define BLE1_RX_Pin GPIO_PIN_7
#define BLE1_RX_GPIO_Port GPIOC
#define DI_CH1_Pin GPIO_PIN_8 #define DI_CH1_Pin GPIO_PIN_8
#define DI_CH1_GPIO_Port GPIOC #define DI_CH1_GPIO_Port GPIOC
#define DI_CH2_Pin GPIO_PIN_9 #define DI_CH2_Pin GPIO_PIN_9

View File

@ -69,12 +69,9 @@ void USART3_IRQHandler(void);
void DMA1_Stream7_IRQHandler(void); void DMA1_Stream7_IRQHandler(void);
void UART4_IRQHandler(void); void UART4_IRQHandler(void);
void UART5_IRQHandler(void); void UART5_IRQHandler(void);
void DMA2_Stream1_IRQHandler(void);
void DMA2_Stream2_IRQHandler(void); void DMA2_Stream2_IRQHandler(void);
void ETH_IRQHandler(void); void ETH_IRQHandler(void);
void DMA2_Stream6_IRQHandler(void);
void DMA2_Stream7_IRQHandler(void); void DMA2_Stream7_IRQHandler(void);
void USART6_IRQHandler(void);
/* USER CODE BEGIN EFP */ /* USER CODE BEGIN EFP */
/* USER CODE END EFP */ /* USER CODE END EFP */

View File

@ -22,7 +22,8 @@
#define __TIM_H__ #define __TIM_H__
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C"
{
#endif #endif
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
@ -38,6 +39,8 @@ extern TIM_HandleTypeDef htim2;
extern TIM_HandleTypeDef htim3; extern TIM_HandleTypeDef htim3;
extern TIM_HandleTypeDef htim8;
/* USER CODE BEGIN Private defines */ /* USER CODE BEGIN Private defines */
#define IS_TIM_IT_FLAG(TIMx) (LL_TIM_IsActiveFlag_UPDATE(TIMx) == 1) #define IS_TIM_IT_FLAG(TIMx) (LL_TIM_IsActiveFlag_UPDATE(TIMx) == 1)
@ -89,6 +92,7 @@ extern TIM_HandleTypeDef htim3;
void MX_TIM1_Init(void); void MX_TIM1_Init(void);
void MX_TIM2_Init(void); void MX_TIM2_Init(void);
void MX_TIM3_Init(void); void MX_TIM3_Init(void);
void MX_TIM8_Init(void);
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
@ -101,4 +105,3 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
#endif #endif
#endif /* __TIM_H__ */ #endif /* __TIM_H__ */

View File

@ -42,8 +42,6 @@ extern UART_HandleTypeDef huart2;
extern UART_HandleTypeDef huart3; extern UART_HandleTypeDef huart3;
extern UART_HandleTypeDef huart6;
/* USER CODE BEGIN Private defines */ /* USER CODE BEGIN Private defines */
// #define BUFFER_SIZE 100 // #define BUFFER_SIZE 100
@ -58,10 +56,10 @@ void MX_UART5_Init(void);
void MX_USART1_UART_Init(void); void MX_USART1_UART_Init(void);
void MX_USART2_UART_Init(void); void MX_USART2_UART_Init(void);
void MX_USART3_UART_Init(void); void MX_USART3_UART_Init(void);
void MX_USART6_UART_Init(void);
/* USER CODE BEGIN Prototypes */ /* USER CODE BEGIN Prototypes */
void dma_usart_send(UART_HandleTypeDef *huart, uint8_t *buf, uint8_t len); // 串å<C2B2>£å<C2A3>é?<3F>å°<C3A5>è£? void dma_usart_send(UART_HandleTypeDef *huart, uint8_t *buf, uint8_t len); // DMA??
/* USER CODE END Prototypes */ /* USER CODE END Prototypes */
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -40,8 +40,8 @@ void MX_DMA_Init(void)
{ {
/* DMA controller clock enable */ /* DMA controller clock enable */
__HAL_RCC_DMA2_CLK_ENABLE();
__HAL_RCC_DMA1_CLK_ENABLE(); __HAL_RCC_DMA1_CLK_ENABLE();
__HAL_RCC_DMA2_CLK_ENABLE();
/* DMA interrupt init */ /* DMA interrupt init */
/* DMA1_Stream0_IRQn interrupt configuration */ /* DMA1_Stream0_IRQn interrupt configuration */
@ -68,15 +68,9 @@ void MX_DMA_Init(void)
/* DMA1_Stream7_IRQn interrupt configuration */ /* DMA1_Stream7_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA1_Stream7_IRQn, 5, 0); HAL_NVIC_SetPriority(DMA1_Stream7_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA1_Stream7_IRQn); HAL_NVIC_EnableIRQ(DMA1_Stream7_IRQn);
/* DMA2_Stream1_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);
/* DMA2_Stream2_IRQn interrupt configuration */ /* DMA2_Stream2_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 5, 0); HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn); HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
/* DMA2_Stream6_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA2_Stream6_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream6_IRQn);
/* DMA2_Stream7_IRQn interrupt configuration */ /* DMA2_Stream7_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 5, 0); HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn); HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);

View File

@ -103,8 +103,7 @@ void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, StackTyp
* @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 */
@ -153,6 +152,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 */
@ -191,13 +191,12 @@ void start_led_toggle_task(void const *argument)
/* Infinite loop */ /* Infinite loop */
for (;;) for (;;)
{ {
HAL_GPIO_TogglePin(LED2_G_GPIO_Port, LED2_G_Pin); HAL_GPIO_TogglePin(LED3_G_GPIO_Port, LED3_G_Pin);
// 旋转编码器确认按键状态并切换<E58887>?<3F>道和确认电流<E794B5>?<3F><EFBFBD>? // 旋转编码器确认按键状态并切换<E58887>?<3F>道和确认电流<E794B5>?<3F><EFBFBD><EFBFBD>???
// if (uart_lcd_state.page_num == 0) // if (uart_lcd_state.page_num == 0)
{ {
if (ec11_data.confirm_key_flag == 0) if (ec11_data.confirm_key_flag == 0)
{ {
// HAL_GPIO_TogglePin(LED2_Y_GPIO_Port, LED2_Y_Pin);
} }
else if (ec11_data.confirm_key_flag == 1) // 确认按键确认电流输出 else if (ec11_data.confirm_key_flag == 1) // 确认按键确认电流输出
{ {
@ -267,7 +266,7 @@ void start_dac_task(void const *argument)
/* Infinite loop */ /* Infinite loop */
for (;;) for (;;)
{ {
osThreadSuspend(adc_taskHandle); // 暂停ADC任务防止DAC采集时产生干<E7949F>?,因为ADC和DAC采用的是同一路SPI但是时序不<E5BA8F>? osThreadSuspend(adc_taskHandle); // 暂停ADC任务防止DAC采集时产生干<E7949F><EFBFBD>???,因为ADC和DAC采用的是同一路SPI但是时序不<E5BA8F><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);
@ -290,7 +289,7 @@ void start_adc_task(void const *argument)
/* Infinite loop */ /* Infinite loop */
for (;;) for (;;)
{ {
osThreadSuspend(dac_taskHandle); // 暂停DAC任务防止ADC采集时产生干<E7949F>?,因为ADC和DAC采用的是同一路SPI但是时序不<E5BA8F>? osThreadSuspend(dac_taskHandle); // 暂停DAC任务防止ADC采集时产生干<E7949F><EFBFBD>???,因为ADC和DAC采用的是同一路SPI但是时序不<E5BA8F><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++)
{ {
@ -331,7 +330,7 @@ void start_gpio_di_do_task(void const *argument)
uint8_t tx_data_len = 7 + DI_MAX; uint8_t tx_data_len = 7 + DI_MAX;
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; // 鐘讹<E99098>??锟界<E9949F>? tx_data[1] = COM_OK; // 鐘讹<E99098><EFBFBD>????锟界<E9949F><EFBFBD>???
tx_data[2] = DEVICE_NUM; // 璁惧锟?? tx_data[2] = DEVICE_NUM; // 璁惧锟??
tx_data[3] = SEND_STATE_CMD; // 鍛戒护锟?? tx_data[3] = SEND_STATE_CMD; // 鍛戒护锟??
tx_data[4] = DI_MAX; // 鏁版嵁闀垮害 tx_data[4] = DI_MAX; // 鏁版嵁闀垮害
@ -375,7 +374,7 @@ void start_ec11_task(void const *argument)
for (;;) for (;;)
{ {
// 旋转编码器调节电流<E794B5>?<3F>画面显<E99DA2>? // 旋转编码器调节电流<E794B5>?<3F>画面显<E99DA2><EFBFBD>???
if (uart_lcd_state.page_num == 0) if (uart_lcd_state.page_num == 0)
{ {
ec11_data.direction = __HAL_TIM_IS_TIM_COUNTING_DOWN(&htim1); ec11_data.direction = __HAL_TIM_IS_TIM_COUNTING_DOWN(&htim1);

View File

@ -105,6 +105,12 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(EC11_KEY_GPIO_Port, &GPIO_InitStruct); HAL_GPIO_Init(EC11_KEY_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = ENCODE_Z_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(ENCODE_Z_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : PDPin PDPin PDPin PDPin */ /*Configure GPIO pins : PDPin PDPin PDPin PDPin */
GPIO_InitStruct.Pin = DO_CH4_Pin|DO_CH3_Pin|DO_CH1_Pin|DO_CH2_Pin; GPIO_InitStruct.Pin = DO_CH4_Pin|DO_CH3_Pin|DO_CH1_Pin|DO_CH2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

View File

@ -117,7 +117,6 @@ int main(void)
MX_DMA_Init(); MX_DMA_Init();
MX_TIM3_Init(); MX_TIM3_Init();
MX_SPI1_Init(); MX_SPI1_Init();
MX_USART6_UART_Init();
MX_UART4_Init(); MX_UART4_Init();
MX_TIM2_Init(); MX_TIM2_Init();
MX_UART5_Init(); MX_UART5_Init();
@ -125,19 +124,26 @@ int main(void)
MX_USART3_UART_Init(); MX_USART3_UART_Init();
MX_TIM1_Init(); MX_TIM1_Init();
MX_USART1_UART_Init(); MX_USART1_UART_Init();
MX_TIM8_Init();
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
// 串口DMA接收中断
/*串å<C2B2>£DMA接收中æ­*/
// start // start
HAL_UARTEx_ReceiveToIdle_DMA(&huart4, lcd_uart4.rx_data_temp, ARRAY_LEN(lcd_uart4.rx_data_temp)); HAL_UARTEx_ReceiveToIdle_DMA(&huart4, lcd_uart4.rx_data_temp, ARRAY_LEN(lcd_uart4.rx_data_temp));
#if (BLE2_USART6 == 1)
HAL_UARTEx_ReceiveToIdle_DMA(&huart6, ble1_uart6.rx_data_temp, ARRAY_LEN(ble1_uart6.rx_data_temp)); HAL_UARTEx_ReceiveToIdle_DMA(&huart6, ble1_uart6.rx_data_temp, ARRAY_LEN(ble1_uart6.rx_data_temp));
#endif
HAL_UARTEx_ReceiveToIdle_DMA(&huart3, ble2_uart3.rx_data_temp, ARRAY_LEN(ble2_uart3.rx_data_temp)); HAL_UARTEx_ReceiveToIdle_DMA(&huart3, ble2_uart3.rx_data_temp, ARRAY_LEN(ble2_uart3.rx_data_temp));
HAL_UARTEx_ReceiveToIdle_DMA(&huart5, hart1_uart5.rx_data_temp, ARRAY_LEN(hart1_uart5.rx_data_temp)); HAL_UARTEx_ReceiveToIdle_DMA(&huart5, hart1_uart5.rx_data_temp, ARRAY_LEN(hart1_uart5.rx_data_temp));
HAL_UARTEx_ReceiveToIdle_DMA(&huart2, hart2_uart2.rx_data_temp, ARRAY_LEN(hart2_uart2.rx_data_temp)); HAL_UARTEx_ReceiveToIdle_DMA(&huart2, hart2_uart2.rx_data_temp, ARRAY_LEN(hart2_uart2.rx_data_temp));
HAL_UARTEx_ReceiveToIdle_DMA(&huart1, usb_uart1.rx_data_temp, ARRAY_LEN(usb_uart1.rx_data_temp)); HAL_UARTEx_ReceiveToIdle_DMA(&huart1, usb_uart1.rx_data_temp, ARRAY_LEN(usb_uart1.rx_data_temp));
// end // end
hart_ht1200m_reset(); // HART模块复位 hart_ht1200m_reset(); // HART模å<C2A1>—å¤<C3A5>ä½<C3A4>
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); // HART时钟信号 HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); // HARTæ—¶éŸä¿¡å<C2A1>·
HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL); //  旋转编码器信号采集 HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL); // æ—转ç¼ç <C3A7>器信å<C2A1>?
#if (ENCODE_TIM8 == 1)
HAL_TIM_Encoder_Start(&htim8, TIM_CHANNEL_ALL); // ç¼ç <C3A7>å™?
#endif
/* USER CODE END 2 */ /* USER CODE END 2 */
/* Call init function for freertos objects (in freertos.c) */ /* Call init function for freertos objects (in freertos.c) */
@ -216,7 +222,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
// ip地址更新 // ip地址更新
IP4_ADDR(&ipaddr, usb_uart1.rx_data_temp[0], usb_uart1.rx_data_temp[1], usb_uart1.rx_data_temp[2], usb_uart1.rx_data_temp[3]); IP4_ADDR(&ipaddr, usb_uart1.rx_data_temp[0], usb_uart1.rx_data_temp[1], usb_uart1.rx_data_temp[2], usb_uart1.rx_data_temp[3]);
gnetif.ip_addr = ipaddr; gnetif.ip_addr = ipaddr;
if (flash_write_data(FLASH_USER_START_ADDR, usb_uart1.rx_data_temp, Size) == HAL_OK) // 写入flash成功更新ip地址显示 if (flash_write_data(FLASH_USER_START_ADDR, usb_uart1.rx_data_temp, Size) == HAL_OK) // 写入flashæˆ<EFBFBD>åŠŸï¼Œæ´æ°ip地å<EFBFBD>€æ˜¾ç¤º
{ {
uart_lcd_draw_ipaddr(); uart_lcd_draw_ipaddr();
} }
@ -230,6 +236,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
HAL_UARTEx_ReceiveToIdle_DMA(&huart4, lcd_uart4.rx_data_temp, ARRAY_LEN(lcd_uart4.rx_data_temp)); HAL_UARTEx_ReceiveToIdle_DMA(&huart4, lcd_uart4.rx_data_temp, ARRAY_LEN(lcd_uart4.rx_data_temp));
// dma_usart_send(&huart4, lcd_uart4.rx_data_temp, lcd_uart4.rx_num); // dma_usart_send(&huart4, lcd_uart4.rx_data_temp, lcd_uart4.rx_num);
} }
#if (BLE2_USART6 == 1)
if (huart == &huart6) if (huart == &huart6)
{ {
__HAL_UNLOCK(huart); __HAL_UNLOCK(huart);
@ -242,6 +249,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
} }
HAL_UARTEx_ReceiveToIdle_DMA(&huart6, ble1_uart6.rx_data_temp, ARRAY_LEN(ble1_uart6.rx_data_temp)); HAL_UARTEx_ReceiveToIdle_DMA(&huart6, ble1_uart6.rx_data_temp, ARRAY_LEN(ble1_uart6.rx_data_temp));
} }
#endif
if (huart == &huart3) if (huart == &huart3)
{ {
__HAL_UNLOCK(huart); __HAL_UNLOCK(huart);

View File

@ -74,14 +74,11 @@ extern DMA_HandleTypeDef hdma_usart2_rx;
extern DMA_HandleTypeDef hdma_usart2_tx; extern DMA_HandleTypeDef hdma_usart2_tx;
extern DMA_HandleTypeDef hdma_usart3_rx; extern DMA_HandleTypeDef hdma_usart3_rx;
extern DMA_HandleTypeDef hdma_usart3_tx; extern DMA_HandleTypeDef hdma_usart3_tx;
extern DMA_HandleTypeDef hdma_usart6_rx;
extern DMA_HandleTypeDef hdma_usart6_tx;
extern UART_HandleTypeDef huart4; extern UART_HandleTypeDef huart4;
extern UART_HandleTypeDef huart5; extern UART_HandleTypeDef huart5;
extern UART_HandleTypeDef huart1; extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart2; extern UART_HandleTypeDef huart2;
extern UART_HandleTypeDef huart3; extern UART_HandleTypeDef huart3;
extern UART_HandleTypeDef huart6;
extern TIM_HandleTypeDef htim4; extern TIM_HandleTypeDef htim4;
/* USER CODE BEGIN EV */ /* USER CODE BEGIN EV */
@ -441,20 +438,6 @@ void UART5_IRQHandler(void)
/* USER CODE END UART5_IRQn 1 */ /* USER CODE END UART5_IRQn 1 */
} }
/**
* @brief This function handles DMA2 stream1 global interrupt.
*/
void DMA2_Stream1_IRQHandler(void)
{
/* USER CODE BEGIN DMA2_Stream1_IRQn 0 */
/* USER CODE END DMA2_Stream1_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_usart6_rx);
/* USER CODE BEGIN DMA2_Stream1_IRQn 1 */
/* USER CODE END DMA2_Stream1_IRQn 1 */
}
/** /**
* @brief This function handles DMA2 stream2 global interrupt. * @brief This function handles DMA2 stream2 global interrupt.
*/ */
@ -483,20 +466,6 @@ void ETH_IRQHandler(void)
/* USER CODE END ETH_IRQn 1 */ /* USER CODE END ETH_IRQn 1 */
} }
/**
* @brief This function handles DMA2 stream6 global interrupt.
*/
void DMA2_Stream6_IRQHandler(void)
{
/* USER CODE BEGIN DMA2_Stream6_IRQn 0 */
/* USER CODE END DMA2_Stream6_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_usart6_tx);
/* USER CODE BEGIN DMA2_Stream6_IRQn 1 */
/* USER CODE END DMA2_Stream6_IRQn 1 */
}
/** /**
* @brief This function handles DMA2 stream7 global interrupt. * @brief This function handles DMA2 stream7 global interrupt.
*/ */
@ -511,20 +480,6 @@ void DMA2_Stream7_IRQHandler(void)
/* USER CODE END DMA2_Stream7_IRQn 1 */ /* USER CODE END DMA2_Stream7_IRQn 1 */
} }
/**
* @brief This function handles USART6 global interrupt.
*/
void USART6_IRQHandler(void)
{
/* USER CODE BEGIN USART6_IRQn 0 */
/* USER CODE END USART6_IRQn 0 */
HAL_UART_IRQHandler(&huart6);
/* USER CODE BEGIN USART6_IRQn 1 */
/* USER CODE END USART6_IRQn 1 */
}
/* USER CODE BEGIN 1 */ /* USER CODE BEGIN 1 */
/* USER CODE END 1 */ /* USER CODE END 1 */

View File

@ -27,6 +27,7 @@
TIM_HandleTypeDef htim1; TIM_HandleTypeDef htim1;
TIM_HandleTypeDef htim2; TIM_HandleTypeDef htim2;
TIM_HandleTypeDef htim3; TIM_HandleTypeDef htim3;
TIM_HandleTypeDef htim8;
/* TIM1 init function */ /* TIM1 init function */
void MX_TIM1_Init(void) void MX_TIM1_Init(void)
@ -180,6 +181,51 @@ void MX_TIM3_Init(void)
/* USER CODE END TIM3_Init 2 */ /* USER CODE END TIM3_Init 2 */
HAL_TIM_MspPostInit(&htim3); HAL_TIM_MspPostInit(&htim3);
}
/* TIM8 init function */
void MX_TIM8_Init(void)
{
/* USER CODE BEGIN TIM8_Init 0 */
/* USER CODE END TIM8_Init 0 */
TIM_Encoder_InitTypeDef sConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
/* USER CODE BEGIN TIM8_Init 1 */
/* USER CODE END TIM8_Init 1 */
htim8.Instance = TIM8;
htim8.Init.Prescaler = 2;
htim8.Init.CounterMode = TIM_COUNTERMODE_UP;
htim8.Init.Period = 65535;
htim8.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim8.Init.RepetitionCounter = 0;
htim8.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
sConfig.IC1Filter = 0;
sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
sConfig.IC2Filter = 0;
if (HAL_TIM_Encoder_Init(&htim8, &sConfig) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim8, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM8_Init 2 */
/* USER CODE END TIM8_Init 2 */
} }
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* tim_encoderHandle) void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* tim_encoderHandle)
@ -210,6 +256,30 @@ void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* tim_encoderHandle)
/* USER CODE END TIM1_MspInit 1 */ /* USER CODE END TIM1_MspInit 1 */
} }
else if(tim_encoderHandle->Instance==TIM8)
{
/* USER CODE BEGIN TIM8_MspInit 0 */
/* USER CODE END TIM8_MspInit 0 */
/* TIM8 clock enable */
__HAL_RCC_TIM8_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
/**TIM8 GPIO Configuration
PC6 ------> TIM8_CH1
PC7 ------> TIM8_CH2
*/
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF3_TIM8;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* USER CODE BEGIN TIM8_MspInit 1 */
/* USER CODE END TIM8_MspInit 1 */
}
} }
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
@ -307,6 +377,24 @@ void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* tim_encoderHandle)
/* USER CODE END TIM1_MspDeInit 1 */ /* USER CODE END TIM1_MspDeInit 1 */
} }
else if(tim_encoderHandle->Instance==TIM8)
{
/* USER CODE BEGIN TIM8_MspDeInit 0 */
/* USER CODE END TIM8_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM8_CLK_DISABLE();
/**TIM8 GPIO Configuration
PC6 ------> TIM8_CH1
PC7 ------> TIM8_CH2
*/
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_6|GPIO_PIN_7);
/* USER CODE BEGIN TIM8_MspDeInit 1 */
/* USER CODE END TIM8_MspDeInit 1 */
}
} }
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)

View File

@ -21,6 +21,7 @@
#include "usart.h" #include "usart.h"
/* USER CODE BEGIN 0 */ /* USER CODE BEGIN 0 */
/* USER CODE END 0 */ /* USER CODE END 0 */
UART_HandleTypeDef huart4; UART_HandleTypeDef huart4;
@ -28,7 +29,6 @@ UART_HandleTypeDef huart5;
UART_HandleTypeDef huart1; UART_HandleTypeDef huart1;
UART_HandleTypeDef huart2; UART_HandleTypeDef huart2;
UART_HandleTypeDef huart3; UART_HandleTypeDef huart3;
UART_HandleTypeDef huart6;
DMA_HandleTypeDef hdma_uart4_rx; DMA_HandleTypeDef hdma_uart4_rx;
DMA_HandleTypeDef hdma_uart4_tx; DMA_HandleTypeDef hdma_uart4_tx;
DMA_HandleTypeDef hdma_uart5_tx; DMA_HandleTypeDef hdma_uart5_tx;
@ -39,8 +39,6 @@ DMA_HandleTypeDef hdma_usart2_rx;
DMA_HandleTypeDef hdma_usart2_tx; DMA_HandleTypeDef hdma_usart2_tx;
DMA_HandleTypeDef hdma_usart3_rx; DMA_HandleTypeDef hdma_usart3_rx;
DMA_HandleTypeDef hdma_usart3_tx; DMA_HandleTypeDef hdma_usart3_tx;
DMA_HandleTypeDef hdma_usart6_rx;
DMA_HandleTypeDef hdma_usart6_tx;
/* UART4 init function */ /* UART4 init function */
void MX_UART4_Init(void) void MX_UART4_Init(void)
@ -68,7 +66,6 @@ void MX_UART4_Init(void)
/* USER CODE BEGIN UART4_Init 2 */ /* 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 */ /* USER CODE END UART4_Init 2 */
} }
/* UART5 init function */ /* UART5 init function */
void MX_UART5_Init(void) void MX_UART5_Init(void)
@ -97,7 +94,6 @@ void MX_UART5_Init(void)
// __HAL_UART_ENABLE_IT(&huart5, UART_IT_RXNE); // 接收中断 // __HAL_UART_ENABLE_IT(&huart5, UART_IT_RXNE); // 接收中断
// __HAL_UART_ENABLE_IT(&huart5, UART_IT_IDLE); // 空闲中断 // __HAL_UART_ENABLE_IT(&huart5, UART_IT_IDLE); // 空闲中断
/* USER CODE END UART5_Init 2 */ /* USER CODE END UART5_Init 2 */
} }
/* USART1 init function */ /* USART1 init function */
@ -126,7 +122,6 @@ void MX_USART1_UART_Init(void)
/* USER CODE BEGIN USART1_Init 2 */ /* USER CODE BEGIN USART1_Init 2 */
/* USER CODE END USART1_Init 2 */ /* USER CODE END USART1_Init 2 */
} }
/* USART2 init function */ /* USART2 init function */
@ -156,7 +151,6 @@ void MX_USART2_UART_Init(void)
// __HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE); // 接收中断 // __HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE); // 接收中断
// __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE); // 使能IDLE中断 // __HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE); // 使能IDLE中断
/* USER CODE END USART2_Init 2 */ /* USER CODE END USART2_Init 2 */
} }
/* USART3 init function */ /* USART3 init function */
@ -185,36 +179,6 @@ void MX_USART3_UART_Init(void)
/* USER CODE BEGIN USART3_Init 2 */ /* USER CODE BEGIN USART3_Init 2 */
/* USER CODE END USART3_Init 2 */ /* USER CODE END USART3_Init 2 */
}
/* USART6 init function */
void MX_USART6_UART_Init(void)
{
/* USER CODE BEGIN USART6_Init 0 */
/* USER CODE END USART6_Init 0 */
/* USER CODE BEGIN USART6_Init 1 */
/* USER CODE END USART6_Init 1 */
huart6.Instance = USART6;
huart6.Init.BaudRate = 115200;
huart6.Init.WordLength = UART_WORDLENGTH_8B;
huart6.Init.StopBits = UART_STOPBITS_1;
huart6.Init.Parity = UART_PARITY_NONE;
huart6.Init.Mode = UART_MODE_TX_RX;
huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart6.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart6) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART6_Init 2 */
/* USER CODE END USART6_Init 2 */
} }
void HAL_UART_MspInit(UART_HandleTypeDef *uartHandle) void HAL_UART_MspInit(UART_HandleTypeDef *uartHandle)
@ -549,70 +513,6 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END USART3_MspInit 1 */ /* USER CODE END USART3_MspInit 1 */
} }
else if(uartHandle->Instance==USART6)
{
/* USER CODE BEGIN USART6_MspInit 0 */
/* USER CODE END USART6_MspInit 0 */
/* USART6 clock enable */
__HAL_RCC_USART6_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
/**USART6 GPIO Configuration
PC6 ------> USART6_TX
PC7 ------> USART6_RX
*/
GPIO_InitStruct.Pin = BLE1_TX_Pin|BLE1_RX_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF8_USART6;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* USART6 DMA Init */
/* USART6_RX Init */
hdma_usart6_rx.Instance = DMA2_Stream1;
hdma_usart6_rx.Init.Channel = DMA_CHANNEL_5;
hdma_usart6_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_usart6_rx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_usart6_rx.Init.MemInc = DMA_MINC_ENABLE;
hdma_usart6_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_usart6_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_usart6_rx.Init.Mode = DMA_NORMAL;
hdma_usart6_rx.Init.Priority = DMA_PRIORITY_LOW;
hdma_usart6_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma_usart6_rx) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(uartHandle,hdmarx,hdma_usart6_rx);
/* USART6_TX Init */
hdma_usart6_tx.Instance = DMA2_Stream6;
hdma_usart6_tx.Init.Channel = DMA_CHANNEL_5;
hdma_usart6_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
hdma_usart6_tx.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_usart6_tx.Init.MemInc = DMA_MINC_ENABLE;
hdma_usart6_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_usart6_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_usart6_tx.Init.Mode = DMA_NORMAL;
hdma_usart6_tx.Init.Priority = DMA_PRIORITY_LOW;
hdma_usart6_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma_usart6_tx) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(uartHandle,hdmatx,hdma_usart6_tx);
/* USART6 interrupt Init */
HAL_NVIC_SetPriority(USART6_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(USART6_IRQn);
/* USER CODE BEGIN USART6_MspInit 1 */
/* USER CODE END USART6_MspInit 1 */
}
} }
void HAL_UART_MspDeInit(UART_HandleTypeDef *uartHandle) void HAL_UART_MspDeInit(UART_HandleTypeDef *uartHandle)
@ -740,46 +640,18 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END USART3_MspDeInit 1 */ /* USER CODE END USART3_MspDeInit 1 */
} }
else if(uartHandle->Instance==USART6)
{
/* USER CODE BEGIN USART6_MspDeInit 0 */
/* USER CODE END USART6_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_USART6_CLK_DISABLE();
/**USART6 GPIO Configuration
PC6 ------> USART6_TX
PC7 ------> USART6_RX
*/
HAL_GPIO_DeInit(GPIOC, BLE1_TX_Pin|BLE1_RX_Pin);
/* USART6 DMA DeInit */
HAL_DMA_DeInit(uartHandle->hdmarx);
HAL_DMA_DeInit(uartHandle->hdmatx);
/* USART6 interrupt Deinit */
HAL_NVIC_DisableIRQ(USART6_IRQn);
/* USER CODE BEGIN USART6_MspDeInit 1 */
/* USER CODE END USART6_MspDeInit 1 */
}
} }
/* USER CODE BEGIN 1 */ /* USER CODE BEGIN 1 */
/** /**
* @brief 使ç¨DMAæ¹å¼<EFBFBD>éšè¿ä¸²å<EFBFBD>£å<EFBFBD>é?<EFBFBD>æ°æ<EFBFBD>? * @brief ??DMA????USART????
* *
* è¯¥å½æ°ä½¿ç¨DMAæ¹å¼<EFBFBD>éšè¿æŒå®šçšä¸²å<EFBFBD>£å<EFBFBD>é<EFBFBD>æŒå®šé¿åº¦çšæ°æ<EFBFBD>®ã? * ?????USART????DMA???????
* *
* @param huart UART_HandleTypeDefç»æžä½æŒéˆï¼ŒæŒå<EFBFBD>éœ?è¦<EFBFBD>使ç¨çšä¸²å<EFBFBD>£å<EFBFBD>¥æŸ * @param huart USART?????UART_HandleTypeDef??????
* @param buf æŒå<EFBFBD>éœ?è¦<EFBFBD>å<EFBFBD>é<EFBFBD>çšæ°æ<EFBFBD>®ç¼å²åŒºçšæŒéˆ * @param buf ???????????
* @param len éœ?è¦<EFBFBD>å<EFBFBD>é<EFBFBD>çšæ°æ<EFBFBD>®é¿åº¦ * @param len ????????
*
* @return æ è¿åžå??
*
* @note 妿žœå<EFBFBD>é?<EFBFBD>è¿ç¨ä¸­åºçްé误,会调ç¨Error_Handler彿°å¤ç<EFBFBD>é误
*/ */
void dma_usart_send(UART_HandleTypeDef *huart, uint8_t *buf, uint8_t len) void dma_usart_send(UART_HandleTypeDef *huart, uint8_t *buf, uint8_t len)
{ {

View File

@ -327,7 +327,7 @@
<periodic>1</periodic> <periodic>1</periodic>
<aLwin>1</aLwin> <aLwin>1</aLwin>
<aCover>0</aCover> <aCover>0</aCover>
<aSer1>0</aSer1> <aSer1>1</aSer1>
<aSer2>0</aSer2> <aSer2>0</aSer2>
<aPa>0</aPa> <aPa>0</aPa>
<viewmode>1</viewmode> <viewmode>1</viewmode>

View File

@ -5,8 +5,8 @@
#define TCP_PORT_HART1 5001 #define TCP_PORT_HART1 5001
#define TCP_PORT_HART2 5002 #define TCP_PORT_HART2 5002
#define TCP_PORT_BLE1 6001 #define TCP_PORT_BLE1 6002
#define TCP_PORT_BLE2 6002 #define TCP_PORT_BLE2 6001
#define TCP_PORT_CONTROL 5003 #define TCP_PORT_CONTROL 5003
extern void tcp_echo_init(void); extern void tcp_echo_init(void);

View File

@ -80,7 +80,7 @@ static err_t tcpecho_recv_hart2(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,
} }
return ERR_OK; return ERR_OK;
} }
#if (BLE2_USART6 == 1)
static err_t tcpecho_recv_ble1(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err) static err_t tcpecho_recv_ble1(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)
{ // 对应接收数据连接的控制块 接收到的数据 { // 对应接收数据连接的控制块 接收到的数据
if (p != NULL) if (p != NULL)
@ -104,6 +104,7 @@ static err_t tcpecho_recv_ble1(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,
} }
return ERR_OK; return ERR_OK;
} }
#endif
static err_t tcpecho_recv_ble2(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err) static err_t tcpecho_recv_ble2(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)
{ // 对应接收数据连接的控制块 接收到的数据 { // 对应接收数据连接的控制块 接收到的数据
@ -208,8 +209,6 @@ static err_t tcpecho_recv_control(void *arg, struct tcp_pcb *tpcb, struct pbuf *
/*2. 判断所要执行的操作 读或写指令*/ /*2. 判断所要执行的操作 读或写指令*/
/*3. 对要发送的数据进行校验,组包,返回数据*/ /*3. 对要发送的数据进行校验,组包,返回数据*/
} }
pbuf_free(p); pbuf_free(p);
} }
@ -234,13 +233,14 @@ static err_t tcpecho_accept_hart2(void *arg, struct tcp_pcb *newpcb, err_t err)
return ERR_OK; return ERR_OK;
} }
#if (BLE2_USART6 == 1)
static err_t tcpecho_accept_ble1(void *arg, struct tcp_pcb *newpcb, err_t err) // 由于这个函数是*tcp_accept_fn类型的 static err_t tcpecho_accept_ble1(void *arg, struct tcp_pcb *newpcb, err_t err) // 由于这个函数是*tcp_accept_fn类型的
{ {
tcp_recv(newpcb, tcpecho_recv_ble1); // 当收到数据时回调用户自己写的tcpecho_recv tcp_recv(newpcb, tcpecho_recv_ble1); // 当收到数据时回调用户自己写的tcpecho_recv
return ERR_OK; return ERR_OK;
} }
#endif
static err_t tcpecho_accept_ble2(void *arg, struct tcp_pcb *newpcb, err_t err) // 由于这个函数是*tcp_accept_fn类型的 static err_t tcpecho_accept_ble2(void *arg, struct tcp_pcb *newpcb, err_t err) // 由于这个函数是*tcp_accept_fn类型的
{ {
tcp_recv(newpcb, tcpecho_recv_ble2); // 当收到数据时回调用户自己写的tcpecho_recv tcp_recv(newpcb, tcpecho_recv_ble2); // 当收到数据时回调用户自己写的tcpecho_recv
@ -257,7 +257,9 @@ void tcp_echo_init(void)
{ {
struct tcp_pcb *server_hart1 = NULL; struct tcp_pcb *server_hart1 = NULL;
struct tcp_pcb *server_hart2 = NULL; struct tcp_pcb *server_hart2 = NULL;
#if (BLE2_USART6 == 1)
struct tcp_pcb *server_ble1 = NULL; struct tcp_pcb *server_ble1 = NULL;
#endif
struct tcp_pcb *server_ble2 = NULL; struct tcp_pcb *server_ble2 = NULL;
struct tcp_pcb *server_control = NULL; struct tcp_pcb *server_control = NULL;
@ -284,7 +286,7 @@ void tcp_echo_init(void)
/* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */ /* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */
tcp_accept(server_hart2, tcpecho_accept_hart2); // 侦听到连接后回调用户编写的tcpecho_accept tcp_accept(server_hart2, tcpecho_accept_hart2); // 侦听到连接后回调用户编写的tcpecho_accept
#if (BLE2_USART6 == 1)
/* 创建一路蓝牙 */ /* 创建一路蓝牙 */
server_ble1 = tcp_new(); server_ble1 = tcp_new();
@ -296,7 +298,7 @@ void tcp_echo_init(void)
/* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */ /* 处理连接 注册函数,侦听到连接时被注册的函数被回调 */
tcp_accept(server_ble1, tcpecho_accept_ble1); // 侦听到连接后回调用户编写的tcpecho_accept tcp_accept(server_ble1, tcpecho_accept_ble1); // 侦听到连接后回调用户编写的tcpecho_accept
#endif
/* 创建二路蓝牙 */ /* 创建二路蓝牙 */
server_ble2 = tcp_new(); server_ble2 = tcp_new();
@ -332,12 +334,13 @@ void user_send_data_hart2(uint8_t *data, uint16_t len)
tcp_write(server_pcb_hart2, data, len, 1); tcp_write(server_pcb_hart2, data, len, 1);
} }
#if (BLE2_USART6 == 1)
void user_send_data_ble1(uint8_t *data, uint16_t len) void user_send_data_ble1(uint8_t *data, uint16_t len)
{ {
tcp_write(server_pcb_ble1, data, len, 1); tcp_write(server_pcb_ble1, data, len, 1);
} }
#endif
void user_send_data_ble2(uint8_t *data, uint16_t len) void user_send_data_ble2(uint8_t *data, uint16_t len)
{ {

View File

@ -62,6 +62,7 @@ void uart_lcd_draw_ipaddr(void)
ip_addr[10 + strlen(ip_addr_str)] = 0xFF; ip_addr[10 + strlen(ip_addr_str)] = 0xFF;
// uart_lcd_page2(); // uart_lcd_page2();
// HAL_Delay(100); // HAL_Delay(100);
uart_lcd_state.page_num = 1;
dma_usart_send(&huart4, ip_addr, ARRAY_LEN(ip_addr)); dma_usart_send(&huart4, ip_addr, ARRAY_LEN(ip_addr));
// HAL_Delay(100); // HAL_Delay(100);
} }

View File

@ -2,139 +2,117 @@
CAD.formats= CAD.formats=
CAD.pinconfig= CAD.pinconfig=
CAD.provider= CAD.provider=
Dma.Request0=USART6_RX Dma.Request0=UART4_RX
Dma.Request1=USART6_TX Dma.Request1=UART4_TX
Dma.Request10=USART1_RX Dma.Request2=USART3_RX
Dma.Request11=USART1_TX Dma.Request3=USART3_TX
Dma.Request2=UART4_RX Dma.Request4=UART5_TX
Dma.Request3=UART4_TX Dma.Request5=UART5_RX
Dma.Request4=USART3_RX Dma.Request6=USART2_RX
Dma.Request5=USART3_TX Dma.Request7=USART2_TX
Dma.Request6=UART5_TX Dma.Request8=USART1_RX
Dma.Request7=UART5_RX Dma.Request9=USART1_TX
Dma.Request8=USART2_RX Dma.RequestsNb=10
Dma.Request9=USART2_TX Dma.UART4_RX.0.Direction=DMA_PERIPH_TO_MEMORY
Dma.RequestsNb=12 Dma.UART4_RX.0.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.UART4_RX.2.Direction=DMA_PERIPH_TO_MEMORY Dma.UART4_RX.0.Instance=DMA1_Stream2
Dma.UART4_RX.2.FIFOMode=DMA_FIFOMODE_DISABLE Dma.UART4_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.UART4_RX.2.Instance=DMA1_Stream2 Dma.UART4_RX.0.MemInc=DMA_MINC_ENABLE
Dma.UART4_RX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE Dma.UART4_RX.0.Mode=DMA_NORMAL
Dma.UART4_RX.2.MemInc=DMA_MINC_ENABLE Dma.UART4_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.UART4_RX.2.Mode=DMA_NORMAL Dma.UART4_RX.0.PeriphInc=DMA_PINC_DISABLE
Dma.UART4_RX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE Dma.UART4_RX.0.Priority=DMA_PRIORITY_VERY_HIGH
Dma.UART4_RX.2.PeriphInc=DMA_PINC_DISABLE Dma.UART4_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.UART4_RX.2.Priority=DMA_PRIORITY_VERY_HIGH Dma.UART4_TX.1.Direction=DMA_MEMORY_TO_PERIPH
Dma.UART4_RX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode Dma.UART4_TX.1.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.UART4_TX.3.Direction=DMA_MEMORY_TO_PERIPH Dma.UART4_TX.1.Instance=DMA1_Stream4
Dma.UART4_TX.3.FIFOMode=DMA_FIFOMODE_DISABLE Dma.UART4_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.UART4_TX.3.Instance=DMA1_Stream4 Dma.UART4_TX.1.MemInc=DMA_MINC_ENABLE
Dma.UART4_TX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE Dma.UART4_TX.1.Mode=DMA_NORMAL
Dma.UART4_TX.3.MemInc=DMA_MINC_ENABLE Dma.UART4_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.UART4_TX.3.Mode=DMA_NORMAL Dma.UART4_TX.1.PeriphInc=DMA_PINC_DISABLE
Dma.UART4_TX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE Dma.UART4_TX.1.Priority=DMA_PRIORITY_VERY_HIGH
Dma.UART4_TX.3.PeriphInc=DMA_PINC_DISABLE Dma.UART4_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.UART4_TX.3.Priority=DMA_PRIORITY_VERY_HIGH Dma.UART5_RX.5.Direction=DMA_PERIPH_TO_MEMORY
Dma.UART4_TX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode Dma.UART5_RX.5.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.UART5_RX.7.Direction=DMA_PERIPH_TO_MEMORY Dma.UART5_RX.5.Instance=DMA1_Stream0
Dma.UART5_RX.7.FIFOMode=DMA_FIFOMODE_DISABLE Dma.UART5_RX.5.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.UART5_RX.7.Instance=DMA1_Stream0 Dma.UART5_RX.5.MemInc=DMA_MINC_ENABLE
Dma.UART5_RX.7.MemDataAlignment=DMA_MDATAALIGN_BYTE Dma.UART5_RX.5.Mode=DMA_NORMAL
Dma.UART5_RX.7.MemInc=DMA_MINC_ENABLE Dma.UART5_RX.5.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.UART5_RX.7.Mode=DMA_NORMAL Dma.UART5_RX.5.PeriphInc=DMA_PINC_DISABLE
Dma.UART5_RX.7.PeriphDataAlignment=DMA_PDATAALIGN_BYTE Dma.UART5_RX.5.Priority=DMA_PRIORITY_VERY_HIGH
Dma.UART5_RX.7.PeriphInc=DMA_PINC_DISABLE Dma.UART5_RX.5.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.UART5_RX.7.Priority=DMA_PRIORITY_VERY_HIGH Dma.UART5_TX.4.Direction=DMA_MEMORY_TO_PERIPH
Dma.UART5_RX.7.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode Dma.UART5_TX.4.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.UART5_TX.6.Direction=DMA_MEMORY_TO_PERIPH Dma.UART5_TX.4.Instance=DMA1_Stream7
Dma.UART5_TX.6.FIFOMode=DMA_FIFOMODE_DISABLE Dma.UART5_TX.4.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.UART5_TX.6.Instance=DMA1_Stream7 Dma.UART5_TX.4.MemInc=DMA_MINC_ENABLE
Dma.UART5_TX.6.MemDataAlignment=DMA_MDATAALIGN_BYTE Dma.UART5_TX.4.Mode=DMA_NORMAL
Dma.UART5_TX.6.MemInc=DMA_MINC_ENABLE Dma.UART5_TX.4.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.UART5_TX.6.Mode=DMA_NORMAL Dma.UART5_TX.4.PeriphInc=DMA_PINC_DISABLE
Dma.UART5_TX.6.PeriphDataAlignment=DMA_PDATAALIGN_BYTE Dma.UART5_TX.4.Priority=DMA_PRIORITY_VERY_HIGH
Dma.UART5_TX.6.PeriphInc=DMA_PINC_DISABLE Dma.UART5_TX.4.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.UART5_TX.6.Priority=DMA_PRIORITY_VERY_HIGH Dma.USART1_RX.8.Direction=DMA_PERIPH_TO_MEMORY
Dma.UART5_TX.6.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode Dma.USART1_RX.8.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART1_RX.10.Direction=DMA_PERIPH_TO_MEMORY Dma.USART1_RX.8.Instance=DMA2_Stream2
Dma.USART1_RX.10.FIFOMode=DMA_FIFOMODE_DISABLE Dma.USART1_RX.8.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART1_RX.10.Instance=DMA2_Stream2 Dma.USART1_RX.8.MemInc=DMA_MINC_ENABLE
Dma.USART1_RX.10.MemDataAlignment=DMA_MDATAALIGN_BYTE Dma.USART1_RX.8.Mode=DMA_NORMAL
Dma.USART1_RX.10.MemInc=DMA_MINC_ENABLE Dma.USART1_RX.8.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART1_RX.10.Mode=DMA_NORMAL Dma.USART1_RX.8.PeriphInc=DMA_PINC_DISABLE
Dma.USART1_RX.10.PeriphDataAlignment=DMA_PDATAALIGN_BYTE Dma.USART1_RX.8.Priority=DMA_PRIORITY_LOW
Dma.USART1_RX.10.PeriphInc=DMA_PINC_DISABLE Dma.USART1_RX.8.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART1_RX.10.Priority=DMA_PRIORITY_LOW Dma.USART1_TX.9.Direction=DMA_MEMORY_TO_PERIPH
Dma.USART1_RX.10.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode Dma.USART1_TX.9.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART1_TX.11.Direction=DMA_MEMORY_TO_PERIPH Dma.USART1_TX.9.Instance=DMA2_Stream7
Dma.USART1_TX.11.FIFOMode=DMA_FIFOMODE_DISABLE Dma.USART1_TX.9.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART1_TX.11.Instance=DMA2_Stream7 Dma.USART1_TX.9.MemInc=DMA_MINC_ENABLE
Dma.USART1_TX.11.MemDataAlignment=DMA_MDATAALIGN_BYTE Dma.USART1_TX.9.Mode=DMA_NORMAL
Dma.USART1_TX.11.MemInc=DMA_MINC_ENABLE Dma.USART1_TX.9.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART1_TX.11.Mode=DMA_NORMAL Dma.USART1_TX.9.PeriphInc=DMA_PINC_DISABLE
Dma.USART1_TX.11.PeriphDataAlignment=DMA_PDATAALIGN_BYTE Dma.USART1_TX.9.Priority=DMA_PRIORITY_LOW
Dma.USART1_TX.11.PeriphInc=DMA_PINC_DISABLE Dma.USART1_TX.9.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART1_TX.11.Priority=DMA_PRIORITY_LOW Dma.USART2_RX.6.Direction=DMA_PERIPH_TO_MEMORY
Dma.USART1_TX.11.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode Dma.USART2_RX.6.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART2_RX.8.Direction=DMA_PERIPH_TO_MEMORY Dma.USART2_RX.6.Instance=DMA1_Stream5
Dma.USART2_RX.8.FIFOMode=DMA_FIFOMODE_DISABLE Dma.USART2_RX.6.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART2_RX.8.Instance=DMA1_Stream5 Dma.USART2_RX.6.MemInc=DMA_MINC_ENABLE
Dma.USART2_RX.8.MemDataAlignment=DMA_MDATAALIGN_BYTE Dma.USART2_RX.6.Mode=DMA_NORMAL
Dma.USART2_RX.8.MemInc=DMA_MINC_ENABLE Dma.USART2_RX.6.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART2_RX.8.Mode=DMA_NORMAL Dma.USART2_RX.6.PeriphInc=DMA_PINC_DISABLE
Dma.USART2_RX.8.PeriphDataAlignment=DMA_PDATAALIGN_BYTE Dma.USART2_RX.6.Priority=DMA_PRIORITY_VERY_HIGH
Dma.USART2_RX.8.PeriphInc=DMA_PINC_DISABLE Dma.USART2_RX.6.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART2_RX.8.Priority=DMA_PRIORITY_VERY_HIGH Dma.USART2_TX.7.Direction=DMA_MEMORY_TO_PERIPH
Dma.USART2_RX.8.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode Dma.USART2_TX.7.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART2_TX.9.Direction=DMA_MEMORY_TO_PERIPH Dma.USART2_TX.7.Instance=DMA1_Stream6
Dma.USART2_TX.9.FIFOMode=DMA_FIFOMODE_DISABLE Dma.USART2_TX.7.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART2_TX.9.Instance=DMA1_Stream6 Dma.USART2_TX.7.MemInc=DMA_MINC_ENABLE
Dma.USART2_TX.9.MemDataAlignment=DMA_MDATAALIGN_BYTE Dma.USART2_TX.7.Mode=DMA_NORMAL
Dma.USART2_TX.9.MemInc=DMA_MINC_ENABLE Dma.USART2_TX.7.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART2_TX.9.Mode=DMA_NORMAL Dma.USART2_TX.7.PeriphInc=DMA_PINC_DISABLE
Dma.USART2_TX.9.PeriphDataAlignment=DMA_PDATAALIGN_BYTE Dma.USART2_TX.7.Priority=DMA_PRIORITY_VERY_HIGH
Dma.USART2_TX.9.PeriphInc=DMA_PINC_DISABLE Dma.USART2_TX.7.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART2_TX.9.Priority=DMA_PRIORITY_VERY_HIGH Dma.USART3_RX.2.Direction=DMA_PERIPH_TO_MEMORY
Dma.USART2_TX.9.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode Dma.USART3_RX.2.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART3_RX.4.Direction=DMA_PERIPH_TO_MEMORY Dma.USART3_RX.2.Instance=DMA1_Stream1
Dma.USART3_RX.4.FIFOMode=DMA_FIFOMODE_DISABLE Dma.USART3_RX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART3_RX.4.Instance=DMA1_Stream1 Dma.USART3_RX.2.MemInc=DMA_MINC_ENABLE
Dma.USART3_RX.4.MemDataAlignment=DMA_MDATAALIGN_BYTE Dma.USART3_RX.2.Mode=DMA_NORMAL
Dma.USART3_RX.4.MemInc=DMA_MINC_ENABLE Dma.USART3_RX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART3_RX.4.Mode=DMA_NORMAL Dma.USART3_RX.2.PeriphInc=DMA_PINC_DISABLE
Dma.USART3_RX.4.PeriphDataAlignment=DMA_PDATAALIGN_BYTE Dma.USART3_RX.2.Priority=DMA_PRIORITY_LOW
Dma.USART3_RX.4.PeriphInc=DMA_PINC_DISABLE Dma.USART3_RX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART3_RX.4.Priority=DMA_PRIORITY_LOW Dma.USART3_TX.3.Direction=DMA_MEMORY_TO_PERIPH
Dma.USART3_RX.4.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode Dma.USART3_TX.3.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART3_TX.5.Direction=DMA_MEMORY_TO_PERIPH Dma.USART3_TX.3.Instance=DMA1_Stream3
Dma.USART3_TX.5.FIFOMode=DMA_FIFOMODE_DISABLE Dma.USART3_TX.3.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART3_TX.5.Instance=DMA1_Stream3 Dma.USART3_TX.3.MemInc=DMA_MINC_ENABLE
Dma.USART3_TX.5.MemDataAlignment=DMA_MDATAALIGN_BYTE Dma.USART3_TX.3.Mode=DMA_NORMAL
Dma.USART3_TX.5.MemInc=DMA_MINC_ENABLE Dma.USART3_TX.3.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART3_TX.5.Mode=DMA_NORMAL Dma.USART3_TX.3.PeriphInc=DMA_PINC_DISABLE
Dma.USART3_TX.5.PeriphDataAlignment=DMA_PDATAALIGN_BYTE Dma.USART3_TX.3.Priority=DMA_PRIORITY_LOW
Dma.USART3_TX.5.PeriphInc=DMA_PINC_DISABLE Dma.USART3_TX.3.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART3_TX.5.Priority=DMA_PRIORITY_LOW
Dma.USART3_TX.5.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART6_RX.0.Direction=DMA_PERIPH_TO_MEMORY
Dma.USART6_RX.0.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART6_RX.0.Instance=DMA2_Stream1
Dma.USART6_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART6_RX.0.MemInc=DMA_MINC_ENABLE
Dma.USART6_RX.0.Mode=DMA_NORMAL
Dma.USART6_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART6_RX.0.PeriphInc=DMA_PINC_DISABLE
Dma.USART6_RX.0.Priority=DMA_PRIORITY_LOW
Dma.USART6_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
Dma.USART6_TX.1.Direction=DMA_MEMORY_TO_PERIPH
Dma.USART6_TX.1.FIFOMode=DMA_FIFOMODE_DISABLE
Dma.USART6_TX.1.Instance=DMA2_Stream6
Dma.USART6_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART6_TX.1.MemInc=DMA_MINC_ENABLE
Dma.USART6_TX.1.Mode=DMA_NORMAL
Dma.USART6_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART6_TX.1.PeriphInc=DMA_PINC_DISABLE
Dma.USART6_TX.1.Priority=DMA_PRIORITY_LOW
Dma.USART6_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
ETH.IPParameters=MediaInterface ETH.IPParameters=MediaInterface
ETH.MediaInterface=HAL_ETH_RMII_MODE ETH.MediaInterface=HAL_ETH_RMII_MODE
FREERTOS.FootprintOK=true FREERTOS.FootprintOK=true
@ -170,12 +148,12 @@ Mcu.Family=STM32F4
Mcu.IP0=DMA Mcu.IP0=DMA
Mcu.IP1=ETH Mcu.IP1=ETH
Mcu.IP10=TIM3 Mcu.IP10=TIM3
Mcu.IP11=UART4 Mcu.IP11=TIM8
Mcu.IP12=UART5 Mcu.IP12=UART4
Mcu.IP13=USART1 Mcu.IP13=UART5
Mcu.IP14=USART2 Mcu.IP14=USART1
Mcu.IP15=USART3 Mcu.IP15=USART2
Mcu.IP16=USART6 Mcu.IP16=USART3
Mcu.IP2=FREERTOS Mcu.IP2=FREERTOS
Mcu.IP3=LWIP Mcu.IP3=LWIP
Mcu.IP4=NVIC Mcu.IP4=NVIC
@ -204,56 +182,57 @@ Mcu.Pin20=PE14
Mcu.Pin21=PB11 Mcu.Pin21=PB11
Mcu.Pin22=PB12 Mcu.Pin22=PB12
Mcu.Pin23=PB13 Mcu.Pin23=PB13
Mcu.Pin24=PD8 Mcu.Pin24=PB14
Mcu.Pin25=PD9 Mcu.Pin25=PD8
Mcu.Pin26=PD11 Mcu.Pin26=PD9
Mcu.Pin27=PD12 Mcu.Pin27=PD11
Mcu.Pin28=PD13 Mcu.Pin28=PD12
Mcu.Pin29=PD14 Mcu.Pin29=PD13
Mcu.Pin3=PH1-OSC_OUT Mcu.Pin3=PH1-OSC_OUT
Mcu.Pin30=PD15 Mcu.Pin30=PD14
Mcu.Pin31=PC6 Mcu.Pin31=PD15
Mcu.Pin32=PC7 Mcu.Pin32=PC6
Mcu.Pin33=PC8 Mcu.Pin33=PC7
Mcu.Pin34=PC9 Mcu.Pin34=PC8
Mcu.Pin35=PA8 Mcu.Pin35=PC9
Mcu.Pin36=PA9 Mcu.Pin36=PA8
Mcu.Pin37=PA10 Mcu.Pin37=PA9
Mcu.Pin38=PA11 Mcu.Pin38=PA10
Mcu.Pin39=PA12 Mcu.Pin39=PA11
Mcu.Pin4=PC0 Mcu.Pin4=PC0
Mcu.Pin40=PA13 Mcu.Pin40=PA12
Mcu.Pin41=PA14 Mcu.Pin41=PA13
Mcu.Pin42=PA15 Mcu.Pin42=PA14
Mcu.Pin43=PC10 Mcu.Pin43=PA15
Mcu.Pin44=PC11 Mcu.Pin44=PC10
Mcu.Pin45=PC12 Mcu.Pin45=PC11
Mcu.Pin46=PD0 Mcu.Pin46=PC12
Mcu.Pin47=PD1 Mcu.Pin47=PD0
Mcu.Pin48=PD2 Mcu.Pin48=PD1
Mcu.Pin49=PD3 Mcu.Pin49=PD2
Mcu.Pin5=PC1 Mcu.Pin5=PC1
Mcu.Pin50=PD4 Mcu.Pin50=PD3
Mcu.Pin51=PD5 Mcu.Pin51=PD4
Mcu.Pin52=PD6 Mcu.Pin52=PD5
Mcu.Pin53=PD7 Mcu.Pin53=PD6
Mcu.Pin54=PB3 Mcu.Pin54=PD7
Mcu.Pin55=PB4 Mcu.Pin55=PB3
Mcu.Pin56=PB5 Mcu.Pin56=PB4
Mcu.Pin57=PB6 Mcu.Pin57=PB5
Mcu.Pin58=PB7 Mcu.Pin58=PB6
Mcu.Pin59=PE0 Mcu.Pin59=PB7
Mcu.Pin6=PA1 Mcu.Pin6=PA1
Mcu.Pin60=PE1 Mcu.Pin60=PE0
Mcu.Pin61=VP_FREERTOS_VS_CMSIS_V1 Mcu.Pin61=PE1
Mcu.Pin62=VP_LWIP_VS_Enabled Mcu.Pin62=VP_FREERTOS_VS_CMSIS_V1
Mcu.Pin63=VP_SYS_VS_tim4 Mcu.Pin63=VP_LWIP_VS_Enabled
Mcu.Pin64=VP_TIM2_VS_ClockSourceINT Mcu.Pin64=VP_SYS_VS_tim4
Mcu.Pin65=VP_TIM3_VS_ClockSourceINT Mcu.Pin65=VP_TIM2_VS_ClockSourceINT
Mcu.Pin66=VP_TIM3_VS_ClockSourceINT
Mcu.Pin7=PA2 Mcu.Pin7=PA2
Mcu.Pin8=PA7 Mcu.Pin8=PA7
Mcu.Pin9=PC4 Mcu.Pin9=PC4
Mcu.PinsNb=66 Mcu.PinsNb=67
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants= Mcu.UserConstants=
Mcu.UserName=STM32F407VGTx Mcu.UserName=STM32F407VGTx
@ -268,9 +247,7 @@ NVIC.DMA1_Stream4_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA1_Stream5_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true NVIC.DMA1_Stream5_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA1_Stream6_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true NVIC.DMA1_Stream6_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA1_Stream7_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true NVIC.DMA1_Stream7_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA2_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA2_Stream2_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true NVIC.DMA2_Stream2_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA2_Stream6_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true
NVIC.DMA2_Stream7_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true NVIC.DMA2_Stream7_IRQn=true\:5\:0\:false\: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.ETH_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true NVIC.ETH_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
@ -296,7 +273,6 @@ NVIC.UART5_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.USART1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true NVIC.USART1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.USART2_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true NVIC.USART2_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.USART3_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true NVIC.USART3_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.USART6_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
PA1.Mode=RMII PA1.Mode=RMII
PA1.Signal=ETH_REF_CLK PA1.Signal=ETH_REF_CLK
@ -356,6 +332,11 @@ PB12.Mode=RMII
PB12.Signal=ETH_TXD0 PB12.Signal=ETH_TXD0
PB13.Mode=RMII PB13.Mode=RMII
PB13.Signal=ETH_TXD1 PB13.Signal=ETH_TXD1
PB14.GPIOParameters=GPIO_PuPd,GPIO_Label
PB14.GPIO_Label=ENCODE_Z
PB14.GPIO_PuPd=GPIO_PULLUP
PB14.Locked=true
PB14.Signal=GPXTI14
PB2.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP PB2.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultOutputPP
PB2.GPIO_Label=LED3_G PB2.GPIO_Label=LED3_G
PB2.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP PB2.GPIO_ModeDefaultOutputPP=GPIO_MODE_OUTPUT_PP
@ -419,16 +400,8 @@ 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_PuPd,GPIO_Label PC6.Signal=S_TIM8_CH1
PC6.GPIO_Label=BLE1_TX PC7.Signal=S_TIM8_CH2
PC6.GPIO_PuPd=GPIO_PULLUP
PC6.Mode=Asynchronous
PC6.Signal=USART6_TX
PC7.GPIOParameters=GPIO_PuPd,GPIO_Label
PC7.GPIO_Label=BLE1_RX
PC7.GPIO_PuPd=GPIO_PULLUP
PC7.Mode=Asynchronous
PC7.Signal=USART6_RX
PC8.GPIOParameters=GPIO_PuPd,GPIO_Label PC8.GPIOParameters=GPIO_PuPd,GPIO_Label
PC8.GPIO_Label=DI_CH1 PC8.GPIO_Label=DI_CH1
PC8.GPIO_PuPd=GPIO_PULLUP PC8.GPIO_PuPd=GPIO_PULLUP
@ -632,7 +605,7 @@ ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=MDK-ARM V5.32 ProjectManager.TargetToolchain=MDK-ARM V5.32
ProjectManager.ToolChainLocation= ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=false ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_LWIP_Init-LWIP-false-HAL-false,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_SPI1_Init-SPI1-false-HAL-true,7-MX_USART6_UART_Init-USART6-false-HAL-true,8-MX_UART4_Init-UART4-false-HAL-true,9-MX_TIM2_Init-TIM2-false-HAL-true,10-MX_UART5_Init-UART5-false-HAL-true,11-MX_USART2_UART_Init-USART2-false-HAL-true,12-MX_USART3_UART_Init-USART3-false-HAL-true,13-MX_TIM1_Init-TIM1-false-HAL-true,14-MX_USART1_UART_Init-USART1-false-HAL-true ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_LWIP_Init-LWIP-false-HAL-false,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_SPI1_Init-SPI1-false-HAL-true,7-MX_UART4_Init-UART4-false-HAL-true,8-MX_TIM2_Init-TIM2-false-HAL-true,9-MX_UART5_Init-UART5-false-HAL-true,10-MX_USART2_UART_Init-USART2-false-HAL-true,11-MX_USART3_UART_Init-USART3-false-HAL-true,12-MX_TIM1_Init-TIM1-false-HAL-true,13-MX_USART1_UART_Init-USART1-false-HAL-true,14-MX_TIM8_Init-TIM8-false-HAL-true
RCC.48MHZClocksFreq_Value=55296000 RCC.48MHZClocksFreq_Value=55296000
RCC.AHBFreq_Value=110592000 RCC.AHBFreq_Value=110592000
RCC.APB1CLKDivider=RCC_HCLK_DIV4 RCC.APB1CLKDivider=RCC_HCLK_DIV4
@ -668,6 +641,8 @@ RCC.VCOOutputFreq_Value=221184000
RCC.VcooutputI2S=106168320 RCC.VcooutputI2S=106168320
SH.GPXTI1.0=GPIO_EXTI1 SH.GPXTI1.0=GPIO_EXTI1
SH.GPXTI1.ConfNb=1 SH.GPXTI1.ConfNb=1
SH.GPXTI14.0=GPIO_EXTI14
SH.GPXTI14.ConfNb=1
SH.GPXTI3.0=GPIO_EXTI3 SH.GPXTI3.0=GPIO_EXTI3
SH.GPXTI3.ConfNb=1 SH.GPXTI3.ConfNb=1
SH.GPXTI8.0=GPIO_EXTI8 SH.GPXTI8.0=GPIO_EXTI8
@ -680,6 +655,10 @@ SH.S_TIM2_CH1_ETR.0=TIM2_CH1,PWM Generation1 CH1
SH.S_TIM2_CH1_ETR.ConfNb=1 SH.S_TIM2_CH1_ETR.ConfNb=1
SH.S_TIM3_CH3.0=TIM3_CH3,PWM Generation3 CH3 SH.S_TIM3_CH3.0=TIM3_CH3,PWM Generation3 CH3
SH.S_TIM3_CH3.ConfNb=1 SH.S_TIM3_CH3.ConfNb=1
SH.S_TIM8_CH1.0=TIM8_CH1,Encoder_Interface
SH.S_TIM8_CH1.ConfNb=1
SH.S_TIM8_CH2.0=TIM8_CH2,Encoder_Interface
SH.S_TIM8_CH2.ConfNb=1
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_256 SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_256
SPI1.CLKPhase=SPI_PHASE_2EDGE SPI1.CLKPhase=SPI_PHASE_2EDGE
SPI1.CLKPolarity=SPI_POLARITY_HIGH SPI1.CLKPolarity=SPI_POLARITY_HIGH
@ -700,6 +679,9 @@ TIM3.IPParameters=Channel-PWM Generation3 CH3,Prescaler,Period,Pulse-PWM Generat
TIM3.Period=370 TIM3.Period=370
TIM3.Prescaler=54 TIM3.Prescaler=54
TIM3.Pulse-PWM\ Generation3\ CH3=92 TIM3.Pulse-PWM\ Generation3\ CH3=92
TIM8.EncoderMode=TIM_ENCODERMODE_TI12
TIM8.IPParameters=Prescaler,EncoderMode
TIM8.Prescaler=2
UART4.IPParameters=VirtualMode UART4.IPParameters=VirtualMode
UART4.VirtualMode=Asynchronous UART4.VirtualMode=Asynchronous
UART5.BaudRate=1200 UART5.BaudRate=1200
@ -716,8 +698,6 @@ USART2.VirtualMode=VM_ASYNC
USART2.WordLength=WORDLENGTH_9B USART2.WordLength=WORDLENGTH_9B
USART3.IPParameters=VirtualMode USART3.IPParameters=VirtualMode
USART3.VirtualMode=VM_ASYNC USART3.VirtualMode=VM_ASYNC
USART6.IPParameters=VirtualMode
USART6.VirtualMode=VM_ASYNC
VP_FREERTOS_VS_CMSIS_V1.Mode=CMSIS_V1 VP_FREERTOS_VS_CMSIS_V1.Mode=CMSIS_V1
VP_FREERTOS_VS_CMSIS_V1.Signal=FREERTOS_VS_CMSIS_V1 VP_FREERTOS_VS_CMSIS_V1.Signal=FREERTOS_VS_CMSIS_V1
VP_LWIP_VS_Enabled.Mode=Enabled VP_LWIP_VS_Enabled.Mode=Enabled