当前位置: 首页 > wzjs >正文

清远网站关键词优化软文拟发布的平台与板块

清远网站关键词优化,软文拟发布的平台与板块,技校平面设计主要做什么,网站建设课程设计总结目录 一、CubeMX配置RTC 1.RTC实时重要一环——BKP 寄存器 2.RTC实时时钟 2.1打开RTC并设置时间 2.2打开外部低速时钟 2.3代码实现: 二、单片机工作模式 1.低功耗睡眠模式(Sleep) 2.低功耗停止模式(Stop) 3.低功耗待机模式(StandBy) 三、看门狗 1.独立看…

 

目录

 

一、CubeMX配置RTC

1.RTC实时重要一环——BKP 寄存器

2.RTC实时时钟

2.1打开RTC并设置时间

2.2打开外部低速时钟

2.3代码实现:

二、单片机工作模式

1.低功耗睡眠模式(Sleep)

2.低功耗停止模式(Stop)

3.低功耗待机模式(StandBy)

三、看门狗

1.独立看门狗

2.窗口看门狗


一、CubeMX配置RTC

1.RTC实时重要一环——BKP 寄存器

BKP寄存器简介
BKP(Backup Registers)备份寄存器
BKP可用于存储用户应用程序数据。当VDD(2.03.6V)电源被切断,他们仍然由VBAT(1.83.6V)维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时他们也不会被复位
TAMPER引脚产生的侵入事件将所有备份寄存器内容清除
RTC引脚输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲
存储RTC时钟校准寄存器
用户数据存储容量:
20字节(中容量和小容量)/ 84字节(大容量和互联型)

小实验将要实现的现象:单片机掉电后,不会遗忘BKP寄存器中的数值!

硬件连接:(需要额外供电给VB引脚)

第一次先写:

HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR1,100);
uint32_t Ret= HAL_RTCEx_BKUPRead(&hrtc,RTC_BKP_DR1);//断电后靠VBAT供电

OLED_ShowNum(0, 0, Ret, 4, 12);

运行后,第二次注释掉HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR1,100);并且把单片机供电拔了,继续运行,按道理说,这个Ret数值就会随着单片机断电变成0,但是当VDD电源被切断,他仍然由VBAT维持供电!所以数值会维持不变!

CubeMX配置简单使用BKP寄存器:

BKP 寄存器通常与 RTC 一起使用,在CubeIDE中假如需要使用BKP寄存器,需要先打开RTC

代码实现:

int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_I2C2_Init();MX_RTC_Init();/* USER CODE BEGIN 2 */OLED_Init();//OLED初始化OLED_CLS();//	HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR1,100);//写BKPuint32_t Ret= HAL_RTCEx_BKUPRead(&hrtc,RTC_BKP_DR1);//断电后靠VBAT供电。读BKPOLED_ShowNum(0, 0, Ret, 4, 12);//显示数值/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}

2.RTC实时时钟

CubeMX配置:

2.1打开RTC并设置时间

2.2打开外部低速时钟

配置RTC时钟源为LSE外部低速时钟

2.3代码实现:

int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_RTC_Init();MX_I2C2_Init();/* USER CODE BEGIN 2 */RTC_TimeTypeDef RTC_Time ;//时分秒RTC_DateTypeDef RTC_Date; //年月日OLED_Init();OLED_CLS();OLED_ShowStr(0, 0, "Data:20  -   -", 2);OLED_ShowStr(0, 2, "Time:", 2);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_RTC_GetDate(&hrtc, &RTC_Date, RTC_FORMAT_BIN);HAL_RTC_GetTime(&hrtc,&RTC_Time, RTC_FORMAT_BIN);OLED_ShowNum(57, 0, RTC_Date.Year, 2, 16);OLED_ShowNum(78, 0, RTC_Date.Month, 2, 16);OLED_ShowNum(100, 0, RTC_Date.Date, 2, 16);OLED_ShowNum(57, 2, RTC_Time.Hours , 2, 16);OLED_ShowNum(78, 2, RTC_Time.Minutes, 2, 16);OLED_ShowNum(100, 2, RTC_Time.Seconds, 2, 16);}/* USER CODE END 3 */
}

效果:

二、单片机工作模式

1.低功耗睡眠模式(Sleep)

使用

HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI);

打开睡眠模式。由于Hal库与标准库在管理系统时钟和低功耗模式时的处理方式不同,Hal库中需要多手动关闭SysTick定时器,因为SysTick定时器会周期性触发中断,会唤醒睡眠模式。

HAL_SuspendTick();//关闭SysTick定时器
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI);
HAL_ResumeTick();//恢复SysTick定时器

2.低功耗停止模式(Stop)

HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON,PWR_STOPENTRY_WFI);//进入Stop模式
SystemClock_Config();//恢复时钟

3.低功耗待机模式(StandBy)

配置PA0为唤醒引脚:

代码:

HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);while(1)
{__HAL_RCC_PWR_CLK_ENABLE();HAL_PWR_EnterSTANDBYMode();
}

三、看门狗

1.独立看门狗

打开独立看门狗并设置预分频器和重装值:

HAL_IWDG_Refresh(&hiwdg);//初始化完成后执行一次喂狗
//获取当前的复位是IWDG造成的复位还是按Rst键造成的复位
if (__HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST) != RESET) 
{// IWDG reset flag is setOLED_ShowString(2, 1, "IWDGRST"); //OLED闪烁IWDGRST字符串HAL_Delay(500);OLED_ShowString(2, 1, " ");HAL_Delay(100);__HAL_RCC_CLEAR_RESET_FLAGS();
}
else
{OLED_ShowString(3, 1, "RST"); //OLED闪烁RST字符串HAL_Delay(500);OLED_ShowString(3, 1, " ");HAL_Delay(100);
}while (1)
{HAL_IWDG_Refresh(&hiwdg);//喂狗HAL_Delay(1100);
}

2.窗口看门狗

代码:

//获取当前的复位是WWDG造成的复位还是按Rst键复位,这里代码有大耗时,需要在
MX_WWDG_Init(); 之前
if (__HAL_RCC_GET_FLAG(RCC_FLAG_WWDGRST) != RESET) 
{// IWDG reset flag is setOLED_ShowString(2, 1, "WWDGRST"); //OLED闪烁IWDGRST字符HAL_Delay(500);OLED_ShowString(2, 1, " ");HAL_Delay(100);__HAL_RCC_CLEAR_RESET_FLAGS();
}
else
{OLED_ShowString(3, 1, "RST"); //OLED闪烁RST字符HAL_Delay(500);OLED_ShowString(3, 1, " ");HAL_Delay(100);
}MX_WWDG_Init();
while (1)
{HAL_Delay(40);HAL_WWDG_Refresh(&hwwdg);//喂狗HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);//开
}
http://www.dtcms.com/wzjs/18101.html

相关文章:

  • 网站营销活动策划培训学校招生方案范文
  • 佛山顺德网站制作公司浙江网站seo
  • 信誉好的镇江网站建设十大收益最好的自媒体平台
  • 塘厦东莞网站建设百度后台登陆入口
  • 373网站怎么做这样的网站旅游产品推广有哪些渠道
  • 网站建设优化方案网络营销策划书结构
  • 卫浴外贸版网站案例云资源软文发布平台
  • 芗城区建设局网站个人博客网页制作
  • ppt的网站导航栏怎么做b站推广费用一般多少
  • 南昌网站建设加王道下拉软文广告500字
  • 景观做文本常用的网站微营销软件
  • 一台电脑如何做网站360外链
  • 小米路由器3 做网站网站alexa排名
  • 做一个网站最便宜多少钱如何建立网站服务器
  • 做羞羞的事网站外包公司的优势和劣势
  • 做网站江西武汉网络营销公司排名
  • 去哪个网站做吃播网络广告公司排名
  • 做分析仪器推广的网站知名品牌营销案例100例
  • 做网站一般要多钱互动营销的方式有哪些
  • 高端网站建设谷美百度竞价关键词优化
  • 我们的爱情网站制作江苏seo平台
  • 手机做图纸app下载网站seo在线优化技术
  • 个人做网站流程图站长工具seo综合查询5g
  • 网站运营培训机构百度软件商店下载安装
  • 做ui的网站各国足球世界排名
  • 关键字查询我的网站怎么做惠州seo招聘
  • 哪个网站可以做兼职ppt模板找客源免费用哪个软件好
  • 江苏交通运输厅网站建设济南百度竞价开户
  • 衡阳县专业做淘宝网站网站建设选亿企网络
  • 什么网站做婚礼请柬seo搜索引擎优化方案