Ignore:
Timestamp:
Apr 10, 2026, 10:32:16 AM (4 weeks ago)
Author:
f.jahn
Message:

Started implementing Modbus on USB CDC channel.

File:
1 edited

Legend:

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

    r27 r69  
    1919  // -------------------- MODUL DEFINES ----------------------
    2020  // ---------------------------------------------------------
    21 
    22 
    23                
    24 
    25   #define MODBUS_BROADCAST_ADDRESS        0x00
    26   #define FC_READ_COILS                   0x01
    27   #define FC_READ_HOLDING_REGISTERS       0x03
    28   #define FC_WRITE_SINGLE_REGISTER        0x06
    29   #define FC_WRITE_MULTIPLE_REGISTER      0x10
    3021
    3122  /* Protocol exceptions */
     
    143134    * @retval None   
    144135  */
    145   void mbUartInit(modbus_t * mb_data,UART_HandleTypeDef * usart, uint32_t baudrate,  uint32_t parityMode,  uint32_t stopBits , uint32_t nrOfBitsPerChar)
     136  void mbUartInit(modbus_t* mb_data,UART_HandleTypeDef* usart, uint32_t baudrate, uint32_t parityMode, uint32_t stopBits, uint32_t nrOfBitsPerChar)
    146137  {
    147138    //--- Uart Init ------------------------------------------------------------
    148     mb_data->uart      = usart;
     139    mb_data->uart = usart;
    149140   
    150141    // Baudrate
    151     mb_data->uart->Init.BaudRate   = baudrate;
     142    mb_data->uart->Init.BaudRate = baudrate;
    152143
    153144    // Parity Mode // Word length
     
    326317
    327318  // Compute the MODBUS RTU CRC
    328   uint16_t mbCrc16 ( uint8_t *buf, uint32_t len)
     319  uint16_t mbCrc16(uint8_t* buf, uint32_t len)
    329320  {
    330321    uint16_t crc = 0xFFFF;
     
    449440  }
    450441
    451   void mbSlaveProcessRtuQuery(modbus_t * mb_data)
    452   {
    453     uint32_t tx_position=0; //die _Nchste_ Position in der Zeichen eingefgt werden mssen
     442  void mbSlaveProcessRtuQuery(modbus_t* mb_data)
     443  {
     444    uint32_t tx_position=0; //die _Nächste_ Position in der Zeichen eingefügt werden müssen
    454445    uint8_t *modbus_rx_message;
    455446    modbus_rx_message = &mb_data->rx_buffer[0];
     
    469460  }
    470461
    471   uint32_t mbSlaveProcessPdu (uint8_t* response_string,    uint8_t * msg,    uint32_t tx_position,    uint8_t deviceID)
     462  uint32_t mbSlaveProcessPdu (uint8_t* response_string, uint8_t* msg, uint32_t tx_position, uint8_t deviceID)
    472463  {
    473464    uint32_t function_code;
     
    499490
    500491
    501   uint32_t mbSlaveReadHoldingRegisters( uint8_t * response_string, uint8_t *msg, uint32_t tx_position, uint8_t deviceID)
     492  uint32_t mbSlaveReadHoldingRegisters(uint8_t* response_string, uint8_t* msg, uint32_t tx_position, uint8_t deviceID)
    502493  {
    503494    uint32_t start_adress;
     
    508499    if((deviceID != sys_data.s.parameter.slave_address) && (deviceID != 0))
    509500    {
    510        return mbSlaveResponseException(response_string,FC_WRITE_SINGLE_REGISTER,GATEWAY_PROBLEM_TARGET,tx_position);
     501       return mbSlaveResponseException(response_string, FC_WRITE_SINGLE_REGISTER, GATEWAY_PROBLEM_TARGET,tx_position);
    511502    }
    512503
Note: See TracChangeset for help on using the changeset viewer.