最近调液晶屏日期和时间显示,修改RTC.c中的程序中if(HAL_RTCEx_BKUPRead(RTCHandle,RTC_BKP_DR0)!= 0xABCD)
{
sTime->Hours=14;
sTime->Minutes=37;
sTime->Seconds=20;
sTime->SubSeconds=0;
sTime->TimeFormat=RTC_HOURFORMAT12_AM;
sTime->DayLightSaving=RTC_DAYLIGHTSAVING_NONE;
sTime->StoreOperation=RTC_STOREOPERATION_RESET;
HAL_RTC_SetTime(RTCHandle,sTime,Format);
sDate->Year=16;
sDate->Month=11;
sDate->Date=28;
sDate->WeekDay=RTC_WEEKDAY_WEDNESDAY;
后,重新烧写程序,发现液晶上的时间没有变化,第二天重新打开液晶,发现时间变为修改后的了。
从网上搜索后将if(HAL_RTCEx_BKUPRead(RTCHandle,RTC_BKP_DR0)!= 0xABCD) 中 0xABCD修改为0x32F2后,时间能够正确快速修改
程序中显示HAL_RTCEx_BKUPWrite(RTCHandle,RTC_BKP_DR0,0xABCD);/* Enable the write protection for RTC registers */
关键字:stm32 液晶 RTC 时间显示
引用地址:
stm32液晶、RTC时间显示问题
推荐阅读最新更新时间:2024-11-11 13:17
IAR首次给单片机STM32下载解锁flash
新板子焊接好后,在编译下载的时候第一次遇到了这样的问题: Warning: Stack pointer is setup to incorrect alignment. Stack addr = 0xAAAAAAAA 开始以为是调试器的问题,我用的Jlink的SWD接口模式,换了STLink还是这个毛病,后来提示需要板子初始化,试了无果,后来查看IAR的帮助文档发现是Flash被保护了,以下摘自Help文档: 按照说明,在IAR安装目录下找到指定的运行程序JLinkSTM32.exe(D:\Program Files (x86)\IAR Systems\Embedded Workbench 6.0\arm\bin)在JLink
[单片机]
为什么学习STM32? 如何系统地入门学习stm32呢?
为什么学习STM32 在学习之前,不妨问一下自己这个问题,或许学起来能更加坚定,不至于轻易放弃。有目的性的去做事,更容易成功。 如何系统地入门学习stm32呢? 假如你用过51单片机,那么恭喜你,再学习STM32会容易很多。如果之前没接触过51,那也不用理会,直接学习STM32也行。 可以用STM32实现什么?为什么使用STM32而不是8051? 相对于STM32来说,51的频率太低、管脚太少、没有众多的外设IO、功耗太大、功能太弱、内存太小。 需要使用SPI、I2C、ADC、DMA,需要使用STM32某些功能,而51实现不了的时候, 那么就需要学习STM32在这些方面的使用方法。比如SPI协议、串口通信、RTOS等。 获
[单片机]
基于STM32单片机对跑马灯的控制
基于学习STM32有一段时间了,特意写下一篇关于一个简单的跑马灯 的例程,梳理思路,也希望我自己的理解能帮到一些学习STM32的初学者 //======================================================// 首先,GPIO的配置种类有8种。分别为模拟输入、浮空输入,上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出、复用推挽输出。 下面将以实例的方式讲解GPIO的设置及实现过程。 事例1:跑马灯实验 跑马灯实验的功能:LED灯进行有规律闪烁。(下面的LED灯的数量都为2个,所以关于寄存器的配置也将以两组的方式进行讲解) 首先要知道普通的IO就两种功能一个为输入,一个为输出
[单片机]
STM32使用内部晶振还是外部晶振
在项目开发过程中,经常会面临“用内部晶振还是外部晶振”的问题。如何选择?关键还是看应用! 如果产品附加值比较高,并且产品对温度,电磁环境等可靠性要求严格的时候,需要考虑使用外部晶振。 毕竟,内部晶振受环境影响比较大(内部晶振的叫法不是很严谨,准确的说内部是RC振荡器,鉴于阻容器件尤其电容大小受温度影响较大,因此温度、电压等对其影响较大,如下图技术手册中所指出的)。 话说回来,在MCU上如果不使用外部晶振,那么引脚OSC_IN和OSC_OUT如何接才比较好呢? ▲技术手册 我们以STM32为例说明,如果使用内部RC振荡器而不使用外部晶振,请按照以下方法处理: (1)对于100脚或144脚的产品,OSC_IN应接地,
[单片机]
STM32的位带操作分析
8051单片机可以直接对某一位IO进行读写操作,而Cortex-M3的位带操作是8051位寻址区的加强版。使用位带操作后,可以使用普通的加载/存储指令对单一的比特进行读写操作。 一、相关概念。 位带区:支持位带操作的地址区。 位带别名区:对别名地址的访问最终作用到位带区的访问上。位带别名区对位带区的访问有个地址映射过程。 二、位带操作的原理 位带操作的最终目的是想对位带区的比特位进行独立的读写操作。但它是通过对位带别名区的操作来实现的。 具体过程如下: 对位带别名区进行读写访问,位带别名区通过地址映射关系映射到相应的位带区,对位带区进行原始比特的读写操作。 三、地址映射 上面对位带操作进行了简单的介绍,那么哪些地址支持位带
[单片机]
STM32跑RTOS操作系统之ucosii串口中断实现
首先看看书中是怎样写的,截图如下: 里面写到:μC/OS中,中断服务子程序要用汇编语言来写。然而,如果用户使用的C语言编译器支持在线汇编语言的话,用户可以直接将中断服务子程序代码放在C语言的程序文件中。 再看《M3权威指南》2.11.2节与9.11节中讲到Cortex-M3在进入异常时自动压栈。。。。返回时自动出栈,再也不需要汇编语言编写了。也就是说我们可以使用C语言来编写中断服务程序。并且省去了上面程序清单的(1)(5)(6). 其实ucos中的终端和裸奔的中断写法基本一致,只是加了几条语句,如下为串口中断的写法: void USART1_IRQHandler(void) { uint8_t RxData;
[单片机]
ch32和stm32的区别
引言 STM32是STMicroelectronics基于ARM Cortex-M处理器架构生产的一系列微控制器,而CH32是中国制造商WCH生产的一组微控制器。 在本文中,我们将讨论CH32和STM32微控制器之间的差异。 处理器 这两个微控制器之间的主要区别在于它们所基于的处理器。CH32微控制器基于名为CH32F103C8T6的8位单周期RISC(精简指令集计算机)处理器,而STM32微控制器则基于32位ARM Cortex-M处理器。 ARM Cortex-M处理器比CH32微控制器中的8位RISC处理器先进得多,这使得STM32微控制器比CH32微型控制器更强大、更高效。 外围设备 这两个微控制器之间的另一个重要区别是它
[单片机]
STM32串口操作相关事项
放了一段时间,对stm32似乎有点陌生,总结一下! (基于3.0固件库,芯片stm32f103rbt6) 1、配置串口的管脚和时钟 由于串口1、2是在GPIOA上: 所以要是能串口GPIOA、AFIO和1或者2的串口时钟,代码如下: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO | RCC_APB2Periph_USART1 , ENABLE); 2、对串口的具体物理管脚进行相应的配置: /* A9 USART1_Tx */ GPIO_InitStructure.GPIO_Pin = GPIO_Pi
[单片机]