嵌入式 · 2010-05-22

MDK 下使用 Serial Windows 调试串口教程

第一步: 确定目标
1: 有的时候我们会有这样的想法: 我们学习 STM32 的时候难道一定需要有硬件开发板才 能调试和学习程序么?
这里告诉大家一个好消息, 学习 STM32 可以完整的在软件上仿 真, 那就是强大的 RealView MDK.
在这个教程中我们教大家怎么使用串口模拟窗口来 调试我们的程序.

2: 目标确定:
调试发送程序: 输出字符串到 Serial Windows
调试接收程序: 敲击键盘上的按键, 窗口接收到数据后通过串口输出到 Serial Windows

第二步: 创建一个工程
你可以下载我给大 家调试好的工程代码.

STM32_USART_Pol.rar (220.95 KB)

下载次数: 127

2009-8-19 19:53

打开工程, 我们可以看到我们的工程包括4个文件:

STM3210x.S    启动代码

STM32_Init.C  初始化代码

Retarget.C      接口函数

Usart.C           主函数

下面给大家介绍下我们的代码:

printf 函数:  将字符串通过串口输出

getchar 函数:  串口接收一个字符

和这两个函数有关的函数移植就是下面三个函数

int fputc(int ch, FILE *f) {

return (SendChar(ch));

}

int fgetc(FILE *f) {

return (SendChar(GetKey()));

}

void _ttywrch(int ch) {

SendChar (ch);

}

最后移植两个底层函数

int SendChar (int ch)  {

while (!(USART1->SR & USART_FLAG_TXE));

USART1->DR = (ch & 0x1FF);

return (ch);

}

int GetKey (void)  {

while (!(USART1->SR & USART_FLAG_RXNE));

return ((int)(USART1->DR & 0x1FF));

}

这几个函数移植好之后我们就可以做我们的调试试验了.

第三步: MDK 仿真调试

编译完成, 进入软件仿真调试.

打开 View -> Serial Window -> USART #1 对话框

全速运行程序, 按下键盘上的按键后我们会看到下面的界面.

1.jpg