第一步: 确定目标
1: 有的时候我们会有这样的想法: 我们学习 STM32 的时候难道一定需要有硬件开发板才 能调试和学习程序么?
这里告诉大家一个好消息, 学习 STM32 可以完整的在软件上仿 真, 那就是强大的 RealView MDK.
在这个教程中我们教大家怎么使用串口模拟窗口来 调试我们的程序.
2: 目标确定:
调试发送程序: 输出字符串到 Serial Windows
调试接收程序: 敲击键盘上的按键, 窗口接收到数据后通过串口输出到 Serial Windows
第二步: 创建一个工程
你可以下载我给大 家调试好的工程代码.
STM32_USART_Pol.rar (220.95 KB)
打开工程, 我们可以看到我们的工程包括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 对话框
全速运行程序, 按下键盘上的按键后我们会看到下面的界面.