原创 [原创]STM32 RVMDK学习实例_1.GPIO软件仿真

2008-7-15 19:49 8639 11 16 分类: MCU/ 嵌入式

使用KeilRealView MDK开发工具进行STM32的学习已经有一段时间了,感受最深的是MDK提供的软件仿真功能——很好很强大。从IAR转到MDK开发环境以后,我就很少像以前那样一遍遍的将程序下载到开发板上进行调试了,而更多的是采用MDK的软件仿真功能进行调试,有事半功倍的效果!从今天开始,我会陆续把以前做的一些试验发布到Blog里,希望大家多来捧场!


 


STM32 RVMDK学习实例的第一回就从GPIO的软件仿真入手。我使用的是RealView MDK 3.22评估版,英蓓特对其帮助文件进行了汉化,大家可以到下面的地址下载:http://www.realview.com.cn/down-list.asp?id=487


1cae7fc3-0c74-46bc-b70d-39e32f56848e.jpg


 


第一步当然是建立工程了,这里就不详细叙述了(可以参考Blog前文,网上也有很多介绍);


 


第二步编写代码并编译,关键代码如下:


int main(void)
{
#ifdef DEBUG
 debug();
#endif
 
 RCC_Configuration();
 GPIO_Configuration();
 
 while(1)
 {
  // For STM3210B-LK1
  GPIO_SetBits(GPIOB, GPIO_Pin_5);
  delay();
  GPIO_ResetBits(GPIOB, GPIO_Pin_5);
  
  GPIO_SetBits(GPIOB, GPIO_Pin_6);
  delay();
  GPIO_ResetBits(GPIOB, GPIO_Pin_6);
  
  GPIO_SetBits(GPIOB, GPIO_Pin_7);
  delay();
  GPIO_ResetBits(GPIOB, GPIO_Pin_7);
  
  GPIO_SetBits(GPIOB, GPIO_Pin_8);
  delay();
  GPIO_ResetBits(GPIOB, GPIO_Pin_8);
  
  GPIO_SetBits(GPIOB, GPIO_Pin_7);
  delay();
  GPIO_ResetBits(GPIOB, GPIO_Pin_7);
  
  GPIO_SetBits(GPIOB, GPIO_Pin_6);
  delay();
  GPIO_ResetBits(GPIOB, GPIO_Pin_6); 
 }
}
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


很简单,就是用GPIOB的5、6、7、8位实现流水灯效果。


 


第三步选择Debug工具,打开“Options对话框”-〉选择“Debug标签”-〉选中“Use Simulator->确定;


点击看大图


 


第四步进入Debug模式,打开“Debug菜单”-〉选择“Start/Stop…”此时会弹出32K代码限制的提示,不用理会,确定即可进入软件仿真模式。


Debug工具条如下:


点击看大图


 


第五步选择外围模块进行仿真,不同型号的STM32 会有不同的外设仿真功能。


77648905-d977-442c-86a5-d38a83302d32.jpg


打开“Peripheral菜单”-〉选择“GPIOB”打开仿真对话框


6ce05adc-dd0f-48d4-aa41-9728178709ea.jpg


点击Debug工具条的运行按钮,在仿真对话框里就可以看到程序的运行结果了,GPIOB的各项参数一目了然。


 


好了,第一个仿真实例就到此为止了,挺简单的吧!下面是该实例的MDK项目文件,下回我会发一个比较复杂的仿真实例。


rar


 

PARTNER CONTENT

文章评论5条评论)

登录后参与讨论

ycdhonker 2013-9-21 16:35

新手学习中,谢谢了啊

用户829600 2012-11-12 14:09

小醋

用户1538104 2010-2-27 15:35

我使用的版本是uVersion4,在调试您的例子的时候,出现说找不到out文件夹中的一个文件,有一个文件和它出现的对话框中说的文件名字一样,但后缀不一样,我将其后缀更改,最后出现错误信息*** error 59: invalid absolute module *** error 65: access violation at 0xFFFFFFF4 : no 'write' permission 另外想请教您,怎么入门STM32,该看哪些资料啊。劳烦你把解答发到xiepengchenghn@163.com中,谢谢您。

用户1113894 2008-7-18 16:23

STM32进门的好例子,多谢了1

用户158184 2008-7-17 18:53

学习了,谢谢!
相关推荐阅读
用户1560991 2008-12-10 19:55
最简单的C#入门教程
从网上找到的C#学习的好资料! 关于作者:Aisha Ikram        我现在在英国一家软件公司任技术带头人。我是计算机科学的硕士。我主要使用 .NET 1.1/2.0, C#, VB.NET...
用户1560991 2008-12-08 22:40
在C#中加载自己编写的动态链接库(转贴)
        本文主要讲述如何在C#中逐步实现加载自己用C++语言编写的动态链接库,以及在导入时如何进行C#和C++语言的数据类型匹配。 一、发生的背景         在开发新项目中使用了新的语言...
用户1560991 2008-12-08 10:25
新的学习方向
        最近的生活总算恢复正常了,可以静下心来学点东西了!新的学习方向是VC#,以前俺用的是VC++ 6.0,最近看到同学在用VC# 2005,很好很强大,支持快速开发。于是俺就想学学,以后用...
用户1560991 2008-08-08 11:04
基于STM32和nRF905的无线数传系统_软件篇
              STM32与nRF905模块间的电路连好后,剩下的工作就是编写程序了。都说STM32的固件库难用,但俺觉得从中可以学到不少东西,尤其是模块化编程的思想。STM32的固件库将...
用户1560991 2008-08-05 12:58
基于STM32和nRF905的无线数传系统_硬件篇
最近搞到一对nRF905无线模块,迫不及待的拿出来给大伙瞧瞧。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:...
用户1560991 2008-08-03 20:31
STM32精确延时的实现方法
前面用STM32的GPIO模拟液晶驱动时序时遇到一个问题,就是怎样产生一段较为精确的延时。通常产生一小段延时的方法就是利用一个递增或者递减循环进行软件延时。<?xml:namespace pre...
EE直播间
更多
我要评论
5
11
关闭 站长推荐上一条 /3 下一条