23. Set Baud Rate Field in Control Register

Back To All Submissions
Previous Submission
Next Submission

Code

#include <stdio.h>
#include <stdint.h>

#define UART_BAUD_RATE_Pos  8U
#define UART_BAUD_RATE_Msk  (0x0FU << UART_BAUD_RATE_Pos)

uint32_t set_baud_rate(uint32_t reg, uint8_t baud) {
    reg &= ~UART_BAUD_RATE_Msk;
    return reg | baud << UART_BAUD_RATE_Pos;
}

int main() {
    uint32_t reg;
    uint8_t baud;
    scanf("%u %hhu", &reg, &baud);
    printf("%u", set_baud_rate(reg, baud));
    return 0;
}

Solving Approach

 

 

 

Was this helpful?
Upvote
Downvote