Ignore:
Timestamp:
Aug 31, 2025, 6:56:29 PM (4 days ago)
Author:
f.jahn
Message:

Shunt Temperatursensor aktiviert

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/fw_g473rct/SES/src/modbus.c

    r23 r24  
    183183        }
    184184       
    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)
    190192    {
    191193      printf("uart error \n\r");
     
    202204    modbusData.mb_rx_frame_complete = 1;
    203205    modbusData.setRxLed = false;
    204         modbusData.rx_head= 0;
    205 
     206        modbusData.rx_head = huart->RxXferSize - __HAL_DMA_GET_COUNTER(huart->hdmarx);
     207       
    206208
    207209  if (huart->ErrorCode == HAL_UART_ERROR_RTO)
    208210  {
    209         printf("MB RTO Event! \n\r");
     211
     212        // printf("MB RTO Event! \n\r");
     213        // Kein Fehler, normale Funktion
    210214  }
    211215  if (huart->ErrorCode == HAL_UART_ERROR_FE)
     
    240244
    241245
    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)
    243248   {
    244249     printf("Uart Error bei neustart nach Fehler \n\r");
     
    250255}
    251256
    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//}
    270275
    271276void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
Note: See TracChangeset for help on using the changeset viewer.