我是 QEMU 和 mcu 编程的初学者,最近在 QEMU 上练习 uart 控制。我正在尝试做的是通过 USART2 将 QEMU 与主机 PC 虚拟连接。
我了解到该选项-serial
可能能够这样做并尝试添加
-serial mon:stdio
=> 没有发生
-serial stdio
=> 错误,但控制台中没有显示任何内容。
处理器:STM32F407VG 板子
:STM32F4-Discovery
IDE:Eclipse IDE
主机设备操作系统:macOS Catalina 10.15.7
以下是我的代码和运行配置
#include "stm32f4xx.h"
void UART2_Init(void);
void UART2_Write(int ch);
void delayMs(int delay);
int main(void){
UART2_Init();
while(1){
UART2_Write('H');
delayMs(500);
UART2_Write('i');
delayMs(500);
}
}
void UART2_Init(void){
RCC -> APB1ENR |= 0x20000; // Enable usart2 clock
RCC -> AHB1ENR |= 0x8; // Enable PD5 clock
GPIOD -> AFR[0] = 0x700000; // access PD5 AF7
GPIOD -> MODER |= 0x800;
USART2 -> BRR = 0x0683; // Set buad rate to 9600
USART2 -> CR1 = 0x8; // Tx enable
USART2 -> CR1 = 0x2000; // USART enable
}
void UART2_Write(int ch){
// wait until Tx buffer is empty
while(!(USART2 -> SR & 0x80)){
USART2 -> DR = (ch & 0xff);
}
}