关于设计图的网站桓台网站开发

张小明 2026/1/19 19:11:59
关于设计图的网站,桓台网站开发,跨境电商选品平台,wordpress添加背景图片一、电源框图STM32的工作电压#xff08;VDD#xff09;是2.0~3.6V#xff0c;内置电压1.8V#xff1b;1.内容补充#xff08;1#xff09;电压调节器三种工作模式#xff08;复位后#xff09;#xff1a;I.运转模式#xff1a;调节器以正常功耗提供1.8V电源#x…一、电源框图STM32的工作电压VDD是2.0~3.6V内置电压1.8V1.内容补充1电压调节器三种工作模式复位后I.运转模式调节器以正常功耗提供1.8V电源内核、内存和外设都正常使用II. 停止模式调节器以低功耗模式提供1.8V电源CPU不运行但数据还在用于保存寄存器和SRAM的内容III.调节器停止供电除了备用电路和备份域外若没有备用电池这些区域内容也会丢失寄存器和SRAE的内容全部丢失。2上电复位掉电复位为了保证底层寄存器的值统一上电时会对所有寄存器进行复位所以每个寄存器都有一个复位值。掉电同理但是复位不是瞬间完成的是有滞后时间的来避免抖动现象毛刺现象不稳定3低功耗用户根据最低电源消耗、最快启动时间和可用的唤醒源等条件选择一个最佳的的低功耗模式STM32F10xxx有三种低功耗模式睡眠、停机和待机。二、三种低功耗模式1.睡眠模式1进入睡眠模式通过执行FWI或WFE指令进入睡眠状态并根据内核系统控制寄存器SCB_SCR中的SLEEPONEXIT位的值选择睡眠进入的机制2补充知识点I.在睡眠模式下所有的I/O引脚都保持它们在运行模式时的状态。II.interrupt中断是需要手动运行的 event事件是自动进行的III.__wfi __WFI 是一样的进入睡眠模式__wfe和__WFE同理VI.退出睡眠状态的条件--任一中断V.为什么要延迟5s再进入睡眠模式停机模式、待机模式同理为了避免下一次烧录时一上来就睡眠程序还未烧录完成代码的烧录需要依靠CPU此时烧录不进去可能导致代码未写完成就睡眠后无法再将其唤醒所以加上5s时希望当它5s内将程序烧录进去IV、HAL库中嘀嗒定时器默认是使用中断方式触发的1ms触发一次)HAL_SuspendTick(); --暂停滴答定时器只是嘀嗒定时器的中断暂停其他功能仍正常工作HAL_ResumeTick(); --恢复嘀嗒定时器的中断IIV、要使用USART中断需要单独启用uint8_t buffer[4] {0}; HAL_UART_Receive_IT(huart1,buffer,4);3代码实现I、寄存器的方式/** * 睡眠模式 */ void enter_sleep_mode(void) { //浅睡眠 SCB-SCR ~SCB_SCR_SLEEPDEEP; SCB-SCR ~SCB_SCR_SLEEPONEXIT; // 立即进入睡眠 // SCB-SCR | SCB_SCR_SLEEPONEXIT; //所有中断程序处理完成后再进入睡眠 __wfi(); }int main(void) { USART_Init(); LED_Init(); LED_On(LED_BLUE); printf(测试STM32进入低功耗 - 睡眠模式 \n); printf(5s后stm32芯片进入睡眠模式 \n); SysTick_DelayS(2); printf(3s后stm32芯片进入睡眠模式 \n); SysTick_DelayS(1); printf(2s后stm32芯片进入睡眠模式 \n); SysTick_DelayS(1); printf(1s后stm32芯片进入睡眠模式 \n); SysTick_DelayS(1); //!进入睡眠模式 enter_sleep_mode(); //蓝灯依然点亮 printf(STM32正常工作 \n); while (1) { LED_Blink(LED_BLUE); } }II、HAL库的方式printf(测试STM32进入低功耗 - 睡眠模式 \n); printf(5s后stm32芯片进入睡眠模式 \n); HAL_Delay(2000); printf(3s后stm32芯片进入睡眠模式 \n); HAL_Delay(1000); printf(2s后stm32芯片进入睡眠模式 \n); HAL_Delay(1000); printf(1s后stm32芯片进入睡眠模式 \n); HAL_Delay(1000); //开启UART中断 uint8_t buffer[4] {0}; HAL_UART_Receive_IT(huart1,buffer,4); //暂停嘀嗒定时器的中断 HAL_SuspendTick(); //! 进入睡眠模式 HAL_PWR_EnterSLEEPMode(PWR_LOWPOWERREGULATOR_ON,PWR_SLEEPENTRY_WFI); //开启嘀嗒定时器的中断 HAL_ResumeTick(); // 蓝灯依然点亮 printf(STM32正常工作 \n);2.停机模式停止模式下电压调节器可运行在正常或低功耗模式此时在1.8V供电区域的的所有时钟都被停止PLL、HSI和HSE RC振荡器的功能被禁止SRAM和寄存器内容被保留下来。在停止模式下所有的I/O引脚都保持它们在运行模式时的状态。1进入停止模式2补充知识点I.上下文的概念II、PWR不属于内核所以需要开启时钟供电III、上电后STM32的时钟先选择HSI_RC震荡电路8MHZ后再转换到HSEPLL72MHZ刚上电后为了确定芯片刚上电就能运行而HSEPLL锁相环倍频器上电后需要一段时间稳定所以先选择HSI精度低频率低在芯片内部上电就能使能无需稳定后等到HSE的频率稳定后使用HSEPLLVI、注意停止模式恢复正常后的时钟为HSI RC所以需要重新设置为HSEPLL72MHZ3代码实现I、寄存器的方式/** * 停止模式 */ void enter_stop_mode() { // 开启时钟 RCC-APB1ENR | RCC_APB1ENR_PWREN; // 深睡眠 SCB-SCR | SCB_SCR_SLEEPDEEP; // 掉电 PWR-CR ~PWR_CR_PDDS; // 低功耗 PWR-CR | PWR_CR_LPDS; __wfi(); }/** * 重新设置PLL为时钟源 */ void system_clock_reset(void) { __IO uint32_t StartUpCounter 0, HSEStatus 0; /* Enable HSE */ RCC-CR | ((uint32_t)RCC_CR_HSEON); /* Wait till HSE is ready and if Time out is reached exit */ do { HSEStatus RCC-CR RCC_CR_HSERDY; StartUpCounter; } while ((HSEStatus 0) (StartUpCounter ! HSE_STARTUP_TIMEOUT)); /* PLL configuration: PLLCLK HSE * 9 72 MHz */ RCC-CFGR (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); RCC-CFGR | (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9); /* Enable PLL */ RCC-CR | RCC_CR_PLLON; /* Wait till PLL is ready */ while ((RCC-CR RCC_CR_PLLRDY) 0) { } /* Select PLL as system clock source */ RCC-CFGR (uint32_t)((uint32_t)~(RCC_CFGR_SW)); RCC-CFGR | (uint32_t)RCC_CFGR_SW_PLL; /* Wait till PLL is used as system clock source */ while ((RCC-CFGR (uint32_t)RCC_CFGR_SWS) ! (uint32_t)0x08) { } }int main(void) { USART_Init(); KEY_Init(); LED_Init(); LED_On(LED_BLUE); printf(测试STM32芯片进入低功耗 - 停止模式 \n); printf(5s后STM32芯片进入停止模式 \n); SysTick_DelayS(2); printf(3s后STM32芯片进入停止模式 \n); SysTick_DelayS(1); printf(2s后STM32芯片进入停止模式 \n); SysTick_DelayS(1); printf(1s后STM32芯片进入停止模式 \n); SysTick_DelayS(1); // !进入停止模式 enter_stop_mode(); // !外部中断唤醒芯片后默认会采用HSI的震荡电路的频率所以不是72M。 // !所以如果想要STM32芯片正常工作那么就需要重新选择PLL时钟源 system_clock_reset(); SysTick_DelayMs(10); // 钃濈伅渚濈劧鐐逛寒 printf(STM32正常工作 \n); while (1) { LED_Blink(LED_BLUE); } }II、HAL库的方式printf(测试STM32芯片进入低功耗 - 停止模式 \n); printf(5s后STM32芯片进入停止模式 \n); HAL_Delay(2000); printf(3s后STM32芯片进入停止模式 \n); HAL_Delay(1000); printf(2s后STM32芯片进入停止模式 \n); HAL_Delay(1000); printf(1s后STM32芯片进入停止模式 \n); HAL_Delay(1000); HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); SystemClock_Config(); HAL_Delay(10); printf(STM32正常工作 \n);3.待机模式1进入待机模式注意在待机模式下所有的I/O引脚处于高阻态除了以下的引脚I、复位引脚始终有效。II、当被设置为防侵入或校准输出时的TAMPER引脚。III、被使能的唤醒引脚。2补充知识点I、SBF位和WUF位SBF 1 表示之前是待机模式现在被唤醒WUF 1 表示是被WKUP唤醒或RTC实时时钟WUF 0 则是被复位键唤醒II、HAL库方式勾选WKUP引脚是代表可以使用此引脚作为唤醒引脚要使用的话还需要开始WKUP使能3代码实现I、寄存器的方式/** * 待机模式 */ void enter_standby_mode() { // 开启时钟 RCC-APB1ENR | RCC_APB1ENR_PWREN; // 深睡眠 SCB-SCR | SCB_SCR_SLEEPDEEP; // 掉电 PWR-CR | PWR_CR_PDDS; //清除唤醒标志位 PWR-CR | PWR_CR_CWUF; //使能唤醒引脚 PWR-CSR | PWR_CSR_EWUP; __wfi(); }int main(void) { USART_Init(); KEY_Init(); LED_Init(); LED_On(LED_BLUE); // 开启时钟 RCC-APB1ENR | RCC_APB1ENR_PWREN; // !获取芯片待机状态判断之前是否曾经进入过待机模式 if ((PWR-CSR PWR_CSR_SBF) ! 0) { printf(STM32芯片从待机模式被); // 复位状态 PWR-CR | PWR_CR_CSBF; if ((PWR-CSR PWR_CSR_WUF) 0) { printf(Reset复位键唤醒 \n); } else { // 复位状态 PWR-CR | PWR_CR_CWUF; printf(WKUP唤醒引脚唤醒 \n); } } printf(测试STM32芯片进入低功耗 - 待机模式 \n); printf(5s后STM32芯片进入待机模式 \n); SysTick_DelayS(2); printf(3s后STM32芯片进入待机模式 \n); SysTick_DelayS(1); printf(2s后STM32芯片进入待机模式 \n); SysTick_DelayS(1); printf(1s后STM32芯片进入待机模式 \n); SysTick_DelayS(1); // !进入待机模式 enter_standby_mode(); printf(STM32正常工作 \n);II、HAL库的方式if(__HAL_PWR_GET_FLAG(PWR_FLAG_SB) ! 0 ){ printf(STM32芯片从待机模式被); //复位状态 PWR-CR | PWR_CR_CSBF; __HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB); if(__HAL_PWR_GET_FLAG(PWR_FLAG_WU) 0){ printf(Reset复位键唤醒 \n); }else{ //复位状态 __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); printf(WKUP唤醒引脚唤醒 \n); } } printf(测试STM32芯片进入低功耗 - 待机模式 \n); printf(5s后STM32芯片进入待机模式 \n); HAL_Delay(2000); printf(3s后STM32芯片进入待机模式 \n); HAL_Delay(1000); printf(2s后STM32芯片进入待机模式 \n); HAL_Delay(1000); printf(1s后STM32芯片进入待机模式 \n); HAL_Delay(1000); //!使能WK引脚 HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1); // !进入待机模式 HAL_PWR_EnterSTANDBYMode(); printf(STM32正常工作 \n);
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

昆明网站建设公司猫咪科技wordpress自建cdn

解锁macOS光标魔法:Mousecape让你的指针焕然一新 【免费下载链接】Mousecape Cursor Manager for OSX 项目地址: https://gitcode.com/gh_mirrors/mo/Mousecape 厌倦了千篇一律的白色箭头光标?想要为你的Mac增添个性化色彩?Mousecape正…

张小明 2026/1/17 21:06:36 网站建设

网站开发的网络开发语言的有哪些

PaddlePaddle镜像在航空行李安检图像识别中的合规应用 在机场安检通道中,每分钟都有成百上千件行李经过X光机扫描。安检员需要在极短时间内判断图像中是否存在刀具、锂电池或可疑液体——这项任务不仅高度依赖经验,还极易因疲劳导致漏检。面对日益增长的…

张小明 2026/1/17 21:06:36 网站建设

公司网站优化电子商务网站建设与管理的书

蓝牙页面-手动点击搜索蓝牙 然后选中某个打印机 进行手动点击打印--权限配置什么的 在上面某个都已配置了import React, { useEffect, useState, useRef } from react; import {Button,View,Alert,PermissionsAndroid,Platform,Text,ScrollView,TouchableOpacity, } from reac…

张小明 2026/1/17 21:06:37 网站建设

手表网站域名wordpress 权限 分类

《Ionic Select》深度解析:从入门到精通 引言 随着移动应用的普及,前端开发技术也在不断进步。Ionic框架作为一款优秀的移动端开发框架,因其丰富的组件和便捷的开发方式受到了广泛关注。其中,Ionic Select组件作为一款强大的选择器控件,极大地丰富了应用的用户体验。本文…

张小明 2026/1/17 21:06:39 网站建设

网站申请好了 怎么建设网站建设和网络推广外包

基于51单片机实现俄罗斯方块游戏的设计 一、系统设计背景与需求分析 俄罗斯方块作为经典益智游戏,传统实现多依赖专用游戏机或计算机平台,存在体积大、成本高、便携性差等问题。基于51单片机设计俄罗斯方块游戏,可利用其低成本、低功耗、接口…

张小明 2026/1/17 21:06:39 网站建设

深圳最好的网站制作公司网站开发答辩知识点

Kotaemon与主流LLM API兼容性实测汇总 在企业加速拥抱AI的今天,一个现实问题摆在面前:如何让大语言模型真正“听懂”业务、安全执行任务,并且输出结果可追溯?许多团队尝试过直接调用GPT或Claude这类通用API,但很快发现…

张小明 2026/1/17 21:06:41 网站建设