1

我是 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);
    }
}

在此处输入图像描述

4

0 回答 0