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

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

  从51开始,单片机玩了很长时间了,有51,PIC,AVR等等,早就想跟潮流玩玩ARM,但一直没有开始,原因 -----不知道玩了ARM可以做什么(对我自己而言)。如果为学习而学习,肯定学不好。然后cortex-m3出来了,据说,这东西可以替代单片机,于 是马上开始关注。也在第一时间开始学习,可惜一开始就有点站错了队,选错了型(仍是对我自己而言)。我希望这种芯片应该是满大街都是,随便哪里都可以买得 到,但我选的第一种显然做不到。为此,大概浪费了一年多时间吧,现在,回到对我来说是正确的道路上来啦,边学边写点东西。
  闲话多了些,就权当前言了。下面准备开始。

 

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


  STM32单片机TIps之RTC实践

  BKP还没有搞完,怎么又换到了RTC上了,因为RTC和BKP有些联系,想不关联还不行呢。

  以下是数据手册上有关RTC的介绍:

  ******介绍开始

  15.1 RTC 简介

  实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。

  RTC模块和时钟配置系统(RCC_BDCR寄存器)是在后备区域,即在系统复位或从待机模式唤醒后RTC的设置和时间维持不变。

  系统复位后,禁止访问后备寄存器和RTC,防止对后备区域(BKP)的意外写 *** 作。执行以下 *** 作使能对后备寄存器和RTC的访问:

  ● 设置寄存器RCC_APB1ENR的PWREN和BKPEN位来使能电源和后备接口时钟

  ● 设置寄存器PWR_CR的DBP位使能对后备寄存器和RTC的访问。

  ******介绍结束

  下面就以库中所带的实例来玩这个RTC,正好也要解决TAMPER引脚的问题。

  这次要用到的例子是这个:

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


  有关配置没有什么可多说的,把上一个例子:BKP-》Backup_Data中修改过的:

  stm32_eval.c

  stm3210e_eval.h

  stm32_eval.h

  三个文件复制过来,建立工程,一路顺风,非常顺利地编译、链接好,然后进入调试,结果,出问题了,见下面:

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


  进入调试界面即停在了反汇编界面。一旦执行程序,立即就停下来。这个BKPT指令是个什么东西呢?查了一下指令表,原来是个断点指令,那为什么会停止在这里呢?万能的网啊,一搜就出来了,感谢前人的努力,感谢伟大的网。..。

  结论是:“ 凡是用到printf的都会出现这样的问题。”

  解决方法:

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


  打开OpTIons for Target项,把那个Use MicroLIB前面打上勾,重新编译链接即可。

  出现问题的原因,网上的相关解释是:这是Printf库函数的问题,需要使用MicroLIB这个库来替代默认的库。原因是默认printf并非使用串口,所以要改掉。

  在main.c中有这样一段函数:

  /**

  * @brief Retargets the C library printf funcTIon to the USART.

  * @param None

  * @retval None

  */

  PUTCHAR_PROTOTYPE

  {

  /* Place your implementaTIon of fputc here */

  /* e.g. write a character to the USART */

  USART_SendData(EVAL_COM1, (uint8_t) ch);

  /* Loop until the end of transmission */

  while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)

  {}

  return ch;

  }

  根据这段函数的说明,就是做这个事情的。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2714898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存