
1,在键盘上按“Win + R”键,打开运行窗口。
2,键入命令shutdown –s –t 3600(参数之间有空格,3600单位为秒,指3600秒即1小时后自动关机),时间参数可以根据需要设置。
3,点击确定,之后系统会d出定时关机设置成功的提示,如下图。
一般用几点过几分, 即几分past几点,25past5,则用还差几分到几点,几分 to几点,a quarter to 6
half past 3
5 o'clock
half past 6
ten to 11
twenty past 7
a quarter past 9
twenty-five to 13
twenty-six past 4
前期准备:
STM32CubeMX
STM32RCT6核心板
IDE Keil(MDK-ARM)
STM32CubeMX部分
1 配置时钟
选择STM32F103RCTx系列芯片,配置时钟的同时会自动配置IO口引脚
在这里插入描述
将HCLK设置为最大频率72MHz
在这里插入描述
2配置TIM
在这里插入描述
Internal Clock(内部时钟)
Prtscaler (定时器分频系数) : 71
Counter Mode(计数模式) Up(向上计数模式)
Counter Period(自动重装载值) : 999
CKD(时钟分频因子) :No Division (不分频 )
auto-reload-preload(自动重装载) : Enable (使能)
在这里插入描述
勾选update interrupt(更新中断)
1 定时器溢出时间计算公式:
在这里插入描述
Tout:中断溢出的时间
arr:自动重装载值
psc:定时器分频系数
Tclk:时钟频率
Tout = ((71+1)(999+1))/72 us
Tout = ( 72 1000 ) / 72 us
1000us = 1ms
所以这里我们的定时时间为:1ms
也就是说单片机1ms进入一次定时器中断
2 定时器计数模式:
向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件。
向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。
向上/向下计数模式(中央对齐模式):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数。
在这里插入描述
2 计数时钟:
内部时钟(TIMx_CLK):
外部时钟模式1:外部捕捉比较引脚(TIx)
外部时钟模式2:外部引脚输入(TIMx_ETR)
内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器。
3配置IO口
在这里插入描述
将PB0设置为:
低电平
Output模式
既不上拉也不下拉
响应速度低
4 工程生成
在这里插入描述
在这里插入描述
工程管理依旧是这几个选项,然后GENERATE CODE,STM32CubeMX部分完成。
MDK 5部分
HAL_TIM_IRQHandler(&htim1);//定时器中断处理函数
此函数的作用是判断中断是否正常,是哪一类定时器中断(溢出中断/捕获中断/PWM中断…),然后进入相应的中断回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef htim)//定时器溢出中断回调函数
定时器中断时,每进行完一个中断,并不会立刻退出,而是会进入到中断回调函数中
点开mainc在这里插入描述
在如图位置上添加
HAL_TIM_Base_Start_IT(&htim1);//开启定时器1
1
1
然后再timc文件中,添加
/ USER CODE BEGIN 0 /
uint16_t Tim_cnt = 0; //定时器计数
/ USER CODE END 0 /
1
2
3
1
2
3
然后在timc文件中重写
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef htim)函数
在这里插入描述
/ USER CODE BEGIN 1 /
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef htim)
{
if (htim->Instance == htim1Instance)
{
Tim_cnt++;
if(Tim_cnt==500) //05s进行一次下列代码
{
Tim_cnt=0; //清0
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
}
}
}
/ USER CODE END 1 /
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
设一个全局变量,每进一次中断+1,因为1ms进入一次中断,所以当Tim_cnt=500的时候(即05s)写入我们需要运行的代码(不要忘记清0)
编译下载时需要选择相对应的下载器,勾选以下
在这里插入描述
运行即可
本期工程文档——>Gitee
在这里插入描述
定时关机技巧全集
一、win9x关机
关机是大家常做的一件事,不少人还传统地使用着点击开始/关闭系统/关闭计算机的方
法。是不是太古老了?来吧朋友,今天跟我一起来玩关机。
一键关机
在桌面单击鼠标右键,选择新建/快捷方式,在创建快捷方式对话框命令行一栏中输入:
C:\windows\rundll32exe user,exitwindows(其中的逗号不能少),左键单击下一步,
在选定快捷方式的名称一栏中输入:关闭计算机,左键单击完成。现在在桌面上生成了一
个关闭计算机的图标,用鼠标选中,单击右键,左键单击属性,选定“快捷方式”标签,
将光标移到 “快捷键”一栏中,按下F2键(F1-F12中任意一键均可)。好了,今后您只
须按一下F2键,就能实现自动关机了。
定时关机
现在不少主板都有定时关机功能,只是界面全是英文,设置起来不方便。您可以在计划任
务中进行设置。运行计划任务程序,点击添加已计划的任务,运行计划任务向导,单击下
一步,单击浏览,选择桌面,双击我们前面建立的一键关机程序,程序名称栏中输入:定
时关机,再选择“每一天”单选框,点击下一步,设定程序的开始时间和开始日期,点击
下一步,点击完成。要修改关机时间,可在计划任务程序中,选定您所建立的“定时关机”
程序,进行相应的设置。
活学活用
您在运行磁盘碎片整理程序时,是不是有这样的感觉,即不想面对枯燥的屏幕,又怕程序
运行完毕自己忘了关机,现在可以在计划任务中对关机程序进行设置,把磁盘碎片整理安
排在睡觉前进行,通过计划任务和定时关机,有多种方法可以让电脑在运行完磁盘碎片整
理程序后自动关闭系统,这里介绍一种简单的方法:打开计划任务程序,双击定时关机,
在“计划任务”下拉列表中选择“一次性”,开始时间可根据您的计算机的速度和所整理
硬盘的大小进行设置,一般设置为比当前时间晚2-3小时足矣。“一次性计划任务”复选
框中的时间设置,默认时间是当日,如您设置的程序运行时间在午夜0时以后,别忘了将此
时间进行相应的调整。好吧,累了一天的您安心上床休息吧,电脑会在运行完后自动关机,
再也用不着您傻傻地等了。
二、让NT自动关机
你是否习惯了Windows 98中的自动关机功能,但是在Windows NT下你是否觉得不能自动关机
实在很“落伍”,是的,这是由于Windows NT不支持ATX电源的软关机功能,所以它最大的
BUG之一就是关闭系统后不能自动关闭电源(某些版本的Windows 2000也存在这个问题),不
过现在给你介绍一种简单的办法解决这个问题,让你从此省心省力,当然前提是你要有
Windows NT Service Pack 6(SP5或SP4也行)的光盘(其实只是需要它里面的一个文件),而
且已经装了Service Pack 4以上的版本。
进入Windows NT *** 作系统,找到安装光盘里名字为Haldllsoftex的文件(我的光盘里
是放在\I386这个目录里,743KB),然后再到装有NT系统的盘里将\Winnt\System32\目录下
的Haldll文件找到,先把这两个文件备份起来以防不测。
接下来,将Haldll改为它名(如Haldllold),将Haldllsoftex从光盘里复制到
\Winnt\System32\目录下,并改名为Haldll这样原来的Haldll文件就被Haldllsoftex
取代了,而我们的目的就是要让Haldllsoftex成为新的Haldll在系统关机时起作用,
这一步已经完成。
然后我们要修改一下注册表,点击“开始”、“运行”,接着在提示符下键入
“Regedit”(或“Regedit32”),打开注册表编辑器的窗口进行编辑。进入
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon主键下,
双击窗格右方的“PowerdownAfterShutdown”键值名称(如果没有此名称,则可利“编辑”
菜单的"添加数值"命令进行添加,其数据类型为REG_SZ,默认值为0)。
当出现“字符串编辑器”对话框时,可在“字符串”文本框中输入“1”(或其他非零
的数值)。做完这一切后你就可以重新启动了,再次关机看看,系统是不是就能自动关闭电
源了
编后:和以前的电源相比,ATX电源主要是增加了+33V和+5V Standby两路输出信号,可以让 *** 作系统直接对电源进行管理,从而实现软关机等功能,它是目前普遍采用的电源。
三、让Windows 2000/XP自动关机
如果你想出门,但电脑又正在进行工作,这时就要用到自动关机。大多数实现自动关机的
方法都是使用一些第三方软件,这样不仅麻烦,而且为实现这个小功能而专门动用一个软
件,显的小题大做了!其实Windows XP(Windows 2000也可以)自身就具备定时关机的功
能,下面我们就来看看如何实现Windows XP的自动关机。
Windows XP的关机是由Shutdownexe程序来控制的,位于Windows\System32文件夹中。如
果想让Windows 2000也实现同样的效果,可以把Shutdownexe复制到系统目录下。
比如你的电脑要在22:00关机,可以选择“开始→运行”,输入“at 22:00 Shutdown -s”,
这样,到了22点电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工
作。如果你想以倒计时的方式关机,可以输入“Shutdownexe -s -t 3600”,这里表示60
分钟后自动关机,“3600”代表60分钟。
设置好自动关机后,如果想取消的话,可以在运行中输入“shutdown -a”。另外输入
“shutdown -i”,则可以打开设置自动关机对话框,对自动关机进行设置。
Shutdownexe的参数,每个都具有特定的用途,执行每一个都会产生不同的效果,比如
“-s”就表示关闭本地计算机,“-a”表示取消关机 *** 作,下面列出了更多参数,大家
可以在Shutdownexe中按需使用。
-f:强行关闭应用程序
-m \\计算机名:控制远程计算机
-i:显示图形用户界面,但必须是Shutdown的第一个选项
-l:注销当前用户
-r:关机并重启
-t 时间:设置关机倒计时
-c "消息内容":输入关机对话框中的消息内容(不能超127个字符)
有时候,我们需要定时关闭计算机,下面介绍一个在Windows XP下实现定时关机的简单方
法。
指定系统在22分钟后自动关闭:点击“开始→运行”,在“打开”中输入命令“Shutdown
-s -t 1320”(注意:引号不输入,参数之间有空格,1320的单位是秒),单击“确定”
按钮即可。
指定系统在某个时间(比如12:00)自动关闭:在“打开”中输入命令
“at 12:00 Shutdown -s”即可。
取消定时关机:在“打开”中输入命令“Shutdown -a”即可。
能的实现都是使用“Shutdown”命令实现的,shutdown的参数是在命令行窗口中输入
“shutdown”。笔者认为最有用的是“-i”参数,可以调出“远程关机对话框”,
能方便地实现局域网内计算机的远程关机,有兴趣的朋友可以试一试。
开始-程序-附件-系统工具-计划任务-添加任务计划-下一步-浏览
-c:\windows\system32\shadowexe-下一步-选好要关机的时间,
下一步-输入用户名和密码,只要是系统里有的用户就行,但一定要有密码,
没有也要设一个,下一步,选上“在完成时打开此任务的高级属性”,
在运行栏后面加上“ -S”引号不要哦。
需要准备的材料分别是:电脑、haldll文件。
1、通过一定途径获取到haldll文件,例如网上寻找并下载。
2、将haldll文件复制到“C:\Windows\System32”目录下。
3、点击“开始菜单”,选择“运行”,输入:regsvr32 haldll,点击确定。
4、此时会d出安装完成haldll文件的提示,点击确定。
HAL_BOARD_IO_BUTTON_1_PORT是端口号,例如P1
HAL_BOARD_IO_BUTTON_1_PIN是端口的位,例如bit5
函数的意思就是取P1^5的当前状态。
前面的!是取反的意思。也就是说如果P1^5为高电平这里返回0,如果P1^5为低电平这里返回1。
一、 STM32的输入输出管脚有下面8种(4输入 2输出 2复用输出)可能的配置:
① 浮空输入_IN_FLOATING
② 带上拉输入_IPU
③ 带下拉输入_IPD
④ 模拟输入_AIN
⑤ 开漏输出_OUT_OD
⑥ 推挽输出_OUT_PP
⑦ 复用功能的推挽输出_AF_PP
⑧ 复用功能的开漏输出_AF_OD
11 I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口 的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路)。通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。
输出速度又称输出驱动电路的响应速度,可理解为:输出驱动电路的带宽,即一个驱动电路可以不失真地通过信号的最大频率。
如果一个信号的频率超过了驱动电路的响应速度,就有可能信号失真。如果信号频率为10MHz,而你配置了2MHz的带宽,则10MHz的方波很可能就变成了正弦波。就好比是公路的设计时速,汽车速度低于设计时速时,可以平稳地运行,如果超过设计时速就会颠簸,甚至翻车。
关键是: GPIO的引脚速度跟应用相匹配,速度配置越高,噪声越大,功耗越大。
带宽速度高的驱动器耗电大、噪声也大,带宽低的驱动器耗电小、噪声也小。使用合适的驱动器可以降低功耗和噪声。
GPIO的引脚速度跟应用匹配(推荐10倍以上)。比如:
111 对于串口,假如最大波特率只需1152k,那么用2M的GPIO的引脚速度就够了,既省电也噪声小。
112 对于I2C接口,假如使用400k波特率,若想把余量留大些,那么用2M的GPIO的引脚速度或许不够,这时可以选用10M的GPIO引脚速度。
113 对于SPI接口,假如使用18M或9M波特率,用10M的GPIO的引脚速度显然不够了,需要选用50M的GPIO的引脚速度。
12 GPIO口设为输入时,输出驱动电路与端口是断开,所以输出速度配置无意义。
13 在复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式。
14 所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。
15 GPIO口的配置具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁。
二、GPIO的翻转速度指:输入/输出寄存器的0 ,1 值反映到外部引脚(APB2上)高低电平的速度手册上指出GPIO最大翻转速度可达18MHz。通过简单的程序测试,用示波器观察到的翻转时间是综合的时间,包括取指令的时间、指令执行的时间、指令执行后信号传递到寄存器的时间(这其中可能经过很多环节,比如AHB、APB、总线仲裁等),最后才是信号从寄存器传输到引脚所经历的时间。如有上拉电阻,其阻值越大,RC延时越大,即逻辑电平转换的速度越慢,功耗越大。
三、在STM32中如何配置片内外设使用的IO端口
首先,一个外设经过 ①配置输入的时钟和 ②初始化后即被激活(开启);③如果使用该外设的输入输出管脚,则需要配置相应的GPIO端口(否则该外设对应的输入输出管脚可以做普通GPIO管脚使用);④再对外设进行详细配置。
对应到外设的输入输出功能有下述三种情况:
① 外设对应的管脚为输出:需要根据外围电路的配置选择对应的管脚为复用功能的推挽输出或复用功能的开漏输出。
② 外设对应的管脚为输入:则根据外围电路的配置可以选择浮空输入、带上拉输入或带下拉输入。
③ ADC对应的管脚:配置管脚为模拟输入。
如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。将管脚配置成复用输出功能后,如果外设没有被激活,那么它的输出将不确定。
四、 通用IO端口(GPIO)初始化
41 GPIO初始化
411 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | B | C, ENABLE):使能APB2总线外设时钟;
412 RCC_ APB2PeriphResetCmd (RCC_APB2Periph_GPIOA | B | C, DISABLE):释放GPIO复位。
42 置各个PIN端口(模拟输入_AIN、输入浮空_IN_FLOATING、输入上拉_IPU、输入下拉_IPD、开漏输出_OUT_OD、推挽式输出_OUT_PP、推挽式复用输出_AF_PP、开漏复用输出_AF_OD)。
43GPIO初始化完成。
五、 的GPIO *** 作函数
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef GPIOx, uint16_t GPIO_Pin);//读GPIO某一位的输入
uint16_t GPIO_ReadInputData(GPIO_TypeDef GPIOx);//读GPIO的输入
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef GPIOx, uint16_t GPIO_Pin);//读GPIO某一位的输出
uint16_t GPIO_ReadOutputData(GPIO_TypeDef GPIOx);//读GPIO的输出
void GPIO_SetBits(GPIO_TypeDef GPIOx, uint16_t GPIO_Pin);//将GPIO的某个位置位
void GPIO_ResetBits(GPIO_TypeDef GPIOx, uint16_t GPIO_Pin);//将GPIO的某个位复位
void GPIO_WriteBit(GPIO_TypeDef GPIOx, uint16_t GPIO_Pin, BitAction BitVal);//写GPIO的某个位
void GPIO_Write(GPIO_TypeDef GPIOx, uint16_t PortVal);//写GPIO
六、管脚的复用功能 重映射
1、复用功能:内置外设是与I/O口共用引出管脚(不同的功能对应同一管脚)
STM32 所有内置外设的外部引脚都是与标准GPIO引脚复用的,如果有多个复用功能模块对应同一个引脚,只能使能其中之一,其它模块保持非使能状态。
2、重映射功能:复用功能的引出脚可以通过重映射,从不同的I/O管脚引出,即复用功 能的引出脚位是可通过程序改变到其他的引脚上!
直接好处:PCB电路板的设计人员可以在需要的情况下,不必把某些信号在板上绕一大圈完成联接,方便了PCB的设计同时潜在地减少了信号的交叉干扰。
如:USART1: 0: 没有重映像(TX/PA9,RX/PA10); 1: 重映像(TX/PB6,RX/PB7)。
(参考AFIO_MAPR寄存器介绍)[0,1为一寄存器的bit值]
注 下述复用功能的引出脚具有重映射功能:
- 晶体振荡器的引脚在不接晶体时,可以作为普通I/O口
- CAN模块; - JTAG调试接口;- 大部分定时器的引出接口; - 大部分USART引出接口
- I2C1的引出接口; - SPI1的引出接口;
举例:对于STM32F103VBT6,47引脚为PB10,它的复用功能是I2C2_SCL和 USART3_TX,表示在上电之后它的默认功能为PB10,而I2C2的SCL和USART3的TX为它的复用功能;另外在TIM2的引脚重映射后,TIM2_CH3也成为这个引脚的复用功能。
(1)要使用STM32F103VBT6的47、48脚的USART3功能,则需要配置47脚为复用推挽输出或复用开漏输出,配置48脚为某种输入模式,同时使能USART3并保持I2C2的非使能状态。
(2)使用STM32F103VBT6的47脚作为TIM2_CH3,则需要对TIM2进行重映射,然后再按复用功能的方式配置对应引脚。
是的,HAL里面这个HAL_UART_Receive()函数已经明明白白地写了,它是阻塞式查询工作方式,只要标志不置位或者超时不结束,就干等到天荒地老。
如果你不需要阻塞式查询工作方式,就应当选用中断工作方式,改用 HAL_UART_Receive_IT()函数并配置对应的NVIC模块、调用对应的中断服务函数并且钩上对应的回调。
以上就是关于如何让电脑定时关机全部的内容,包括:如何让电脑定时关机、二、英语时间表达法 谈论日常生活时会用到时间,要注意英汉不同的时间表达方式,试比较: at hal、stm32获取定时器溢出状态但不中断等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)