android
2024-07-10 94101a2cd9baed60360f68096033dc75cbb1dcb3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "board_uart.h"
 
// ³õʼ»¯UART
void uart_init() {
    UART1_DeInit();
    UART1_Init((uint32_t)115200, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO,
              UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);
}
 
// Í¨¹ýUART·¢Ë͵¥¸ö×Ö·û
void uart_send_char(char c) {
    while (UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET);
    UART1_SendData8(c);
}
 
// Í¨¹ýUART·¢ËÍ×Ö·û´®
void uart_send_string(const char *str) {
    while (*str) {
        uart_send_char(*str++);
    }
}
 
// Í¨¹ýUART·¢ËÍÊ®Áù½øÖÆÊý£¬´ø0xǰ׺ºÍ»»ÐÐ
void uart_send_hex(uint32_t num) {
    const char *hex_digits = "0123456789ABCDEF";
    int leading_zero = 1; // ÓÃÓÚÌø¹ýǰµ¼ÁãµÄ±êÖ¾
        int i;
    uart_send_string("0x"); // ·¢ËÍ0xǰ׺
 
    for (i = 28; i >= 0; i -= 4) {
        char digit = hex_digits[(num >> i) & 0xF];
 
        if (digit != '0' || !leading_zero || i == 0) {
            leading_zero = 0; // Óöµ½µÚÒ»¸ö·ÇÁã×Ö·ûºó£¬Í£Ö¹Ìø¹ýǰµ¼Áã
            uart_send_char(digit);
        }
    }
        uart_send_char('\r');
        uart_send_char('\n');
}