bool rs485_baud_rate_set( uint32_t baud) { bool valid = true; uint8_t baud_k = 0; switch (baud) { case 9600: case 19200: case 38400: case 57600: case 76800: case 115200: Baud_Rate = baud; rs485_baud_rate_configure(); /* store the baud rate */ baud_k = baud / 1000; eeprom_bytes_write(NV_EEPROM_BAUD_K, &baud_k, 1); break; default: valid = false; break; } return valid; }
static void rs485_init_nvdata( void) { uint8_t baud_k = 9; /* from EEPROM value */ eeprom_bytes_read(NV_EEPROM_BAUD_K, &baud_k, 1); switch (baud_k) { case 9: Baud_Rate = 9600; break; case 19: Baud_Rate = 19200; break; case 38: Baud_Rate = 38400; break; case 57: Baud_Rate = 57600; break; case 76: Baud_Rate = 76800; break; case 115: Baud_Rate = 115200; break; default: /* not configured yet */ Baud_Rate = 38400; baud_k = 38400 / 1000; eeprom_bytes_write(NV_EEPROM_BAUD_K, &baud_k, 1); break; } rs485_baud_rate_configure(); }
/************************************************************************* * Description: Sets the baud rate to non-volatile storeage and configures USART * Returns: true if a value baud rate was saved * Notes: none **************************************************************************/ bool rs485_baud_rate_set( uint32_t baud) { bool valid = true; switch (baud) { case 9600: case 19200: case 38400: case 57600: case 76800: case 115200: Baud_Rate = baud; rs485_baud_rate_configure(); break; default: valid = false; break; } return valid; }