微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > STM32单片机小Tips(6):玩转IAR,开发STM32

STM32单片机小Tips(6):玩转IAR,开发STM32

时间:02-16 来源:本站整理 点击:

P模块的时钟信号 */

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);

  /*允许对BKP进行存取*/

  PWR_BackupAccessCmd(ENABLE);

  /* 禁止引脚的TAMPER功能*/

  BKP_TamperPinCmd(DISABLE); /* To output RTCCLK/64 on Tamper pin, the tamper functionality must be disabled */

  /* 允许时钟信号在TAMPER引脚输出*/

  BKP_RTCOutputConfig(BKP_RTCOutputSource_CalibClock);

  这样就可以了,也不复杂。

  需要说明的一点是,PC13这个引脚不需要被配置成输出引脚,但在这一时刻它是起到输出作用的。

  BKP_RTCOutputConfig()这个函数中所用到的参数可以有这样的一些:

  BKP_RTCOutputSource_None

  不允许在Tamper引脚输出信号

  BKP_RTCOutputSource_CalibClock

  在Tamper引脚上输出RTC时钟经64分频后的频率信号

  BKP_RTCOutputSource_Alarm

  在Tamper引脚上输出RTC报警信号

  RTCOutputSource_Second

  在Tamper引脚上输出秒信号

  经测试,

  (1)在Tamper引脚上输出的信号,不受复位的影响!当然,这是有条件的,条件是复位时不会执行到操作RTC的相关代码。

  (2) 在用J-LINK写入代码时,Tamper引脚输出的信号,不受影响,照样输出!

  (3)断电之后再上电,Tamper引脚送出的信号,不受影响,照样输出!

  (4) 去掉VBAT供电端的电力供应,断电,再上电,Tamper引脚送出的信号消失!

  判断:前面的程序写的有关标志被保存在BKP区域,不断电不会消失。这是否对电池的寿命有影响呢?毕竟送出波形也会有消耗的。

  最后用两个图来结束,分别是运行时的BKP内容和POWER,RESET,CLOCK的内容。

  

  


  STM32单片机小Tips之玩转IAR,开发STM32

  记得本笔记开始时曾说过,我选用keil,理由是keil我熟,而当时我什么都不懂,总要找个熟悉点的东西,并且说过,如果需要用到IAR时,肯定上手也很快。这回要用IAR了,看一看上手究竟快不快啦!

  资源列表:

  芯片:STM32103VC

  库:3.3

  JLINK:V8

  IAR:5.3

  工作目标:编译库中的例子。

  工作过程:

  (1)文件夹结构

  


  基本上没有变化。

  为什么要强调这个呢,这可和设置有很大的关系。

  接下来看例子文件

  


  其中上面的那个文件夹中包含了大量的例子,而下面的这个文件夹则包含了几种编译器的工程例子,里面有一些东西是我们需要用到的。

  再继续

  这次偷了点懒,没有专门为源程序建立一个文件夹,直接把工程文件和源程序文件放在一起了,当然,也有一个因素,是因为使用IAR默认设置就做得相当的"干净",编译完了后基本上没有多出几个文件出来。要是keil,那可不得了,,,

  


  在iar中用File-》New-》WorkSpace新建一个工作区,然后用Project-》Creat New Project新建一个工程。

  


  起名保存等等吧,这一类的问题就不在这里一一列出了。

  总之我们做好了一个名为IOToggle的工程,然后就要将文件加入到工程中去了。

  为了便于区分,同样在IOToggle中建立3个组,如下图所示。

  


  将IOToggle文件夹中的所有C文件全部加入到APP组,同时再将

  


  中的stm32_eval.c文件加入这个组中。

  在CMSIS组中加入的文件是:

  


  其中core_cm3.c在\Libraries\CMSIS\CM3\CoreSupport文件夹中,system_stm32f10x.c在\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x文件夹中,而startup_stm32f10x_hd.s在\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\iar中。

  在LIB文件夹中加入的文件是:

  


  这些文件当然都是3.3库所提供的,在\Libraries\STM32F10x_StdPeriph_Driver\src文件夹中。

  至此,文件加入完毕。

  从下面开始有两个选择

  1.直接使用J-LINK

  接下是重要的设置工作。

  


  接下来这里很重要

  

  设定头文件所在位置,这个如果设置不对,编译不能通过。

  $PROJ_DIR$\

  设定项目所在位置,如果这个没有的话,会找不到stm32f10x_it.h等头文件。

  $PROJ_DIR$\。.\。.\。.\。.\Libraries\CMSIS\CM3\CoreSupport

  这里的。.\表示的是上级目录的意思(DOS下的东西,曾经是那么的熟悉)

  $PROJ_DIR$\。.\。.\。.\。.\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

  $PROJ_DIR$\。.\。.\。.\。.\Libraries\STM32F10x_StdPeriph_Driver\inc

  $PROJ_DIR$\。.\。.\。.\。.\Utilities\STM32_EVAL

其他的都不多说了,如果做其他工程时,目录结构与上面的不

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top