#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');
|
}
|
|