Changeset 24 for trunk/fw_g473rct/SES/src/modbus.c
- Timestamp:
- Aug 31, 2025, 6:56:29 PM (4 days ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/fw_g473rct/SES/src/modbus.c
r23 r24 183 183 } 184 184 185 uint32_t fixedDelayInBitDurations = (FAST_BAUDRATE_INTERFRAME_DELAY_us * baudrate) / 1000000UL + 1UL; 186 // HAL_UART_EnableReceiverTimeout( usart); 187 // HAL_UART_ReceiverTimeout_Config(usart, fixedDelayInBitDurations); 188 189 if(HAL_UARTEx_ReceiveToIdle_DMA(mb_data->uart, mb_data->rx_buffer, RXBUFFERSIZE) != HAL_OK) 185 186 HAL_UART_EnableReceiverTimeout( usart); 187 HAL_UART_ReceiverTimeout_Config(usart, 3.5 * nrOfBitsPerChar); 188 SET_BIT(usart->Instance->CR1, USART_CR1_RTOIE); 189 190 191 if(HAL_UART_Receive_DMA(mb_data->uart, mb_data->rx_buffer, RXBUFFERSIZE) != HAL_OK) 190 192 { 191 193 printf("uart error \n\r"); … … 202 204 modbusData.mb_rx_frame_complete = 1; 203 205 modbusData.setRxLed = false; 204 modbusData.rx_head = 0;205 206 modbusData.rx_head = huart->RxXferSize - __HAL_DMA_GET_COUNTER(huart->hdmarx); 207 206 208 207 209 if (huart->ErrorCode == HAL_UART_ERROR_RTO) 208 210 { 209 printf("MB RTO Event! \n\r"); 211 212 // printf("MB RTO Event! \n\r"); 213 // Kein Fehler, normale Funktion 210 214 } 211 215 if (huart->ErrorCode == HAL_UART_ERROR_FE) … … 240 244 241 245 242 if(HAL_UARTEx_ReceiveToIdle_DMA(huart, huart->pRxBuffPtr, RXBUFFERSIZE) != HAL_OK) 246 247 if(HAL_UART_Receive_DMA(huart, huart->pRxBuffPtr, RXBUFFERSIZE) != HAL_OK) 243 248 { 244 249 printf("Uart Error bei neustart nach Fehler \n\r"); … … 250 255 } 251 256 252 void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)253 {254 //printf("MB rxEvent!RX=%d \n\r",Size);255 modbusData.setRxLed = true;256 257 modbusData.mb_rx_frame_complete = 1;258 modbusData.rx_head= Size +1;259 260 if(HAL_UARTEx_ReceiveToIdle_DMA(huart, huart->pRxBuffPtr, RXBUFFERSIZE) != HAL_OK)261 {262 printf("uart error \n\r");263 // while(1)264 // {265 // }266 }267 268 269 }257 //void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) 258 //{ 259 // //printf("MB rxEvent!RX=%d \n\r",Size); 260 // modbusData.setRxLed = true; 261 262 // modbusData.mb_rx_frame_complete = 1; 263 // modbusData.rx_head= Size +1; 264 265 // if(HAL_UART_Receive_DMA(huart, huart->pRxBuffPtr, RXBUFFERSIZE) != HAL_OK) 266 // { 267 // printf("uart error \n\r"); 268 // // while(1) 269 // // { 270 // // } 271 // } 272 273 274 //} 270 275 271 276 void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
Note: See TracChangeset
for help on using the changeset viewer.