STM32单片机小Tips(6):玩转IAR,开发STM32
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
其他的都不多说了,如果做其他工程时,目录结构与上面的不
MCU STM32 IAR STM 32位单片机 相关文章:
- 基于MCU的智能漏水检测系统设计(10-06)
- 分享来自凌特大牛关于LTC6804相关问题解决方案(06-20)
- 基于飞思卡尔MCU的血糖监测仪应用(09-16)
- 探索利用MCU增加LED照明系统的智能程度的方法(02-07)
- 强化射频与MCU性能 车用77GHz雷达性价比攀升(03-03)
- 飞思卡尔汽车电控系统MCU新方案:关注安全与联网(03-22)