From 570a11a37f3e239a4a544f5785fc08b9f9f0bd1f Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Thu, 6 Mar 2025 14:35:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BF=D0=B8=D0=BD=D1=8B=20=D0=B2=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B5=D0=BA=D1=82=D0=B5=20PY32F002A=20=D0=B8=20=D0=B2=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=BD=D1=86=D0=B8=D0=BF=D0=B5=20=D0=BE=D0=BF?= =?UTF-8?q?=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B2=D1=81=D0=B5=D1=85?= =?UTF-8?q?=20=D0=BF=D0=B8=D0=BD=D0=BE=D0=B2=20=D0=B4=D0=BB=D1=8F=20B=20?= =?UTF-8?q?=D0=B8=20A=20=D0=BA=D0=BE=D0=BD=D1=82=D1=80=D0=BE=D0=BB=D0=BB?= =?UTF-8?q?=D0=B5=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ PY32F002A_Pins.xlsx | Bin 0 -> 8884 bytes PY32F002B_Pins.xlsx | Bin 0 -> 8575 bytes py_project/Core/Dallas/ds18b20_driver.h | 6 ++++++ py_project/Core/Dallas/ow_port.c | 15 +++++++++++---- py_project/Core/Modbus/interface_config.h | 3 +++ py_project/Core/Src/gpio.c | 10 ++++++++++ py_project/Core/Src/usart.c | 18 ++++++++++++++---- py_project/MDK-ARM/PY32Dallas.uvoptx | 4 ++-- 9 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 PY32F002A_Pins.xlsx create mode 100644 PY32F002B_Pins.xlsx diff --git a/.gitignore b/.gitignore index 0ba4c12..915fbcd 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,5 @@ JLinkLog.txt /MDK-ARM/DebugConfig/ /MDK-ARM/Output/ /~$ds18b20_locations.xlsx +/~$PY32F002A_Pins.xlsx +/~$PY32F002B_Pins.xlsx diff --git a/PY32F002A_Pins.xlsx b/PY32F002A_Pins.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..5934109f46c0ee5600c1266e0cb77102256c7cdd GIT binary patch literal 8884 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 a{`tDataPort->MODER &= ~((GPIO_MODER_MODE0_Msk) << 0); - OW->DataPort->MODER |= (GPIO_MODE_INPUT << (0+2)); + OW->DataPort->MODER &= ~((GPIO_MODER_MODE0_Msk) << PIN_NUMB); + OW->DataPort->MODER |= (GPIO_MODE_INPUT << (PIN_NUMB)); }else{ - OW->DataPort->MODER &= ~((GPIO_MODER_MODE0_Msk) << 0); - OW->DataPort->MODER |= (GPIO_MODE_OUTPUT_PP << 0); + OW->DataPort->MODER &= ~((GPIO_MODER_MODE0_Msk) << PIN_NUMB); + OW->DataPort->MODER |= (GPIO_MODE_OUTPUT_PP << PIN_NUMB); } #else #ifdef LL_Driver diff --git a/py_project/Core/Modbus/interface_config.h b/py_project/Core/Modbus/interface_config.h index c877134..058de92 100644 --- a/py_project/Core/Modbus/interface_config.h +++ b/py_project/Core/Modbus/interface_config.h @@ -39,6 +39,9 @@ #define RS_TIM_DeInit HAL_TIM_Base_MspDeInit #define rs_huart huart1 #define rs_htim htim14 + +#define RS_EnableReceive() GPIOB->ODR |= GPIO_PIN_3 +#define RS_EnableTransmit() GPIOB->ODR &= ~GPIO_PIN_3 /** * @brief Поменять комманды 0x03 и 0x04 местами (для LabView терминалки от двигателей) * @details Терминалка от двигателей использует для чтения регистров комманду R_HOLD_REGS вместо R_IN_REGS diff --git a/py_project/Core/Src/gpio.c b/py_project/Core/Src/gpio.c index 6a01b7e..f3433f3 100644 --- a/py_project/Core/Src/gpio.c +++ b/py_project/Core/Src/gpio.c @@ -68,5 +68,15 @@ void MX_GPIO_Init(void) GPIOA->OSPEEDR |= (GPIO_SPEED_FREQ_LOW << GPIO_OSPEEDR_OSPEED1_Pos) | (GPIO_SPEED_FREQ_LOW << GPIO_OSPEEDR_OSPEED4_Pos) | (GPIO_SPEED_FREQ_LOW << GPIO_OSPEEDR_OSPEED5_Pos); + +#ifdef PY32F002Bx5 + /*Configure LED GPIO pin : PB3 (Receive Enable) */ + /* PA1, PA4, PA5 */ + GPIOB->MODER &= ~(GPIO_MODER_MODE3); + GPIOB->MODER |= (GPIO_MODE_OUTPUT_PP << GPIO_MODER_MODE3_Pos); + GPIOB->PUPDR &= ~(GPIO_PUPDR_PUPD3); + GPIOB->PUPDR |= (GPIO_NOPULL << GPIO_PUPDR_PUPD3_Pos); + GPIOB->OSPEEDR |= (GPIO_SPEED_FREQ_HIGH << GPIO_OSPEEDR_OSPEED3_Pos); +#endif } /************************ (C) COPYRIGHT Puya *****END OF FILE******************/ diff --git a/py_project/Core/Src/usart.c b/py_project/Core/Src/usart.c index fde94bc..54784d8 100644 --- a/py_project/Core/Src/usart.c +++ b/py_project/Core/Src/usart.c @@ -67,7 +67,8 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) /* USART1 clock enable */ __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_USART1_CLK_ENABLE(); - + +#ifdef PY32F002Bx5 /* GPIO initialization PB04:TX, PB05:RX @@ -89,17 +90,26 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) GPIOB->OSPEEDR |= (GPIO_SPEED_FREQ_HIGH << GPIO_OSPEEDR_OSPEED5_Pos); GPIOB->AFR[0] &= ~(0xF << GPIO_AFRL_AFSEL5_Pos); GPIOB->AFR[0] |= (GPIO_AF1_USART1 << GPIO_AFRL_AFSEL5_Pos); +#endif +#ifdef PY32F002Ax5 + GPIOA->MODER &= ~GPIO_MODER_MODE10; // PA2 + GPIOA->MODER |= GPIO_MODER_MODE10_1; // (AF) + GPIOA->OTYPER |= GPIO_OTYPER_OT10; // Open-Drain + GPIOA->PUPDR &= ~GPIO_PUPDR_PUPD10; // + GPIOA->PUPDR |= GPIO_PUPDR_PUPD10_0; // + GPIOA->AFR[1] &= ~(0xF << GPIO_AFRH_AFSEL10_Pos); + GPIOA->AFR[1] |= (GPIO_AF1_USART1 << GPIO_AFRH_AFSEL10_Pos); +#endif /* USART1 interrupt Init */ HAL_NVIC_SetPriority(USART1_IRQn, 0, 0); HAL_NVIC_EnableIRQ(USART1_IRQn); - /* USER CODE BEGIN USART1_MspInit 1 */ + /* USER CODE BEGIN USART1_MspInit 1 */ - /* USER CODE END USART1_MspInit 1 */ + /* USER CODE END USART1_MspInit 1 */ } } - /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ diff --git a/py_project/MDK-ARM/PY32Dallas.uvoptx b/py_project/MDK-ARM/PY32Dallas.uvoptx index ee57f74..6ee6c5d 100644 --- a/py_project/MDK-ARM/PY32Dallas.uvoptx +++ b/py_project/MDK-ARM/PY32Dallas.uvoptx @@ -987,7 +987,7 @@ Drivers/PY32F002B_HAL_Driver - 1 + 0 0 0 0 @@ -1067,7 +1067,7 @@ Drivers/PY32F002A_HAL_Driver - 1 + 0 0 0 0