【嵌入式】MSP430系统实时时钟RTC学习日志(完善中)
目录
MSP430系统实时时钟RTC
【时钟初始化】系统时钟初始化需要注意的问题
MSP430F149时钟源选择(部分转)
MSP430 系统时钟 ACLK、MCLK、SMCLK
【MSP430时钟】MSP430 5438时钟系统介绍
MSP430X5XX的时钟系统与低功耗模式
MSP430X5XX的时钟系统与低功耗模式
MSP430系统实时时钟RTC
2012.1.11
读取实时时钟:
1、 RTCRDY 为0时,不能取读取实时时钟
RT0PS源于ACLK,为了实时时钟日历的正确的运行,ACLK必须是32768Hz。(易出错)
定时:
一、每小时闹一次:每一小时的15分钟闹一次:
1、将RTCAMIN设置成15;2、设置RTCAMIN的AE位和清除闹钟寄存器的其它所有AE位
3、AF会在:00:14:59到00:15:00、01:14:59到01:15:00、02:14:59到02:15:00等等时刻被置位。
二、在每天04:00:00时刻闹:
1、RTCAHOUR位置位成4;2、设置RTCHOUR的AE位和复位闹钟寄存器的所有其它AE位
3、AF就会在03:59:59到04:00:00时刻被置位。
三、在每天06:30:00时刻闹:
1、 将RTCAHOUR设置成6,将RTCAMIN 设置成30。
2、设置RTCAHOUR和RTCAMIN的AE位,即可使能闹钟
3、 AF位将会在每一个06:29:59到06:30:00的过渡时刻被置位
四、在每周二 06:30:00时刻闹:
1、 RTCADOW位设置成2,RTCAHOUR设置成6,RTCAMIN将要被设置成30。
2、 设置RTCADOW、RTCAHOUR和RTCAMIN的AE位,闹钟即被使能。
3、 AF位将会在RTCDOW位从1 到2的过渡后和06:29:59到06:30:00的过渡时刻被置位。
五、在每月第五天的06:30:00时刻闹:
1、 RTCADAY位将要设置成5,RTCAHOUR位将要被设置成6,RTCAMIN位将要被设置成30。
2、 设置RTCADAY位、RTCAHOUR位和RTCAMIN位的AE位,闹钟即被使能。
3、 AF位将要在06:29:59到06:30:00的过渡时刻和RTCADAY等于5的时刻被置位。
实时时钟模式下的间隔时间中断:
RTCCTL01 = RTCBCD+RTCMODE+RTCTEVIE+RTCAIE;
RTCMODE: 0:Counter 1: Calendar
置位RTCTEVIE 位就使能时间间隔中断功能,置位RTCTEVIFG
//天中断。置位RTCRDYIE 位会使能中断,RTCRDY 位触发实时时钟中断RTCRDYIFG
配置成8位、16位、24位或者32位中的一种溢出时引发一个触发事件。触发事件可由RTCTEV位进行选择
在计数器模式中,三个中断源是可用的,其分别是RT0PSIFG、RT1PSIFG和RTCTEVIFG。RTCAIFG位和RTCRDYIFG位被清除。RTCRDYIE和RTCAIE位可以忽略。
1通过设置RT0IP位,可以选择使RT0PSIFG位用来生成间歇中断。
2在计数器模式,RT0PS位时钟源,源自于ACLK或者SMCLK,也可以是基于ACLK或者SMCLK时钟源的2分频、4分频、8分频、16分频、32分频、64分频、128分频和256分频作为时钟源。
1通过设置RT1IP位,可以选择地让RT1PSIFG位用来生成间歇中断。
一个简单而安全读取实时时钟寄存器的方法是利用RTCRDYIFG中断标志位。置位RTCRDYIE位使能
RTCRDYIFG中断。一旦中断使能,在RTCRDY位上升沿的时候将会产生中断,致使RTCRDYIFG被置位。在这
一点上,这一应用几乎有完整的一秒钟安全地去读取任一个实时时钟寄存器。这一同步的处理方式防止在时间
跳变的过程中读取时间值。当中断得到响应的时候,RTCRDYIFG会自动复位,也可以软件复位。
在计数器模式下,RTCRDY位保持复位。可以不关心RTCRDYIE位,并且RTCRDYIFG维持复位。
基于MSP430单片机时钟芯片RTC-4553温度误差软件补偿[机电之家行业下载站]
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop Watchdog Timer
RTCCTL01 &= ~RTCHOLD; // Enable RTC
P1DIR |= 0x01; // Set P1.0 to output direction
__bis_SR_register(LPM3_bits + GIE); // Enter LPM3 w/ interrupt
}
【时钟初始化】系统时钟初始化需要注意的问题
MSP430F149时钟源选择(部分转)
标签:
时钟源msp430谐振器振荡器时钟信号教育 |
分类: MCU |
MSP430的基本时钟源有3个: LFXT1CLK, XT2CLK, DCOCLK ;
其中: LFXT1CLK:可以用低频钟表晶体、标准晶体、陶瓷谐振器或外接时钟源工作。
XT2CLK:可以用标准晶体、陶瓷谐振器或外接450khz~8mhz的时钟源工作。
MSP430的3种时钟信号是: ACLK, MCLK, SMCLK;
其中: ACLK(辅助系统时钟):可选时钟源LFXT1CLK(只能是外部时钟源),且一般为32768hz手表晶体)。
MCLK(主时钟):可选LFXT1CLK,XT2CLK, DCOCLK 三种时钟源。用于CPU和系统。
SMCLK(子时钟):可选LFXT1CLK,XT2CLK, DCOCLK 三种时钟源。用于外围器件.
(Notice:LFXT1CLK when XT2 oscillator not present on-chip.)
系统时钟问题:
系统默认使用DCO,使用外部高速晶振XT2时必须自己开启XT2,并延时50us等待XT2起振,然后手工清除IFG1中的OFIFG位 !!!!一定要注意操作顺序:打开XT2->等待XT2稳定->切换系统时钟为XT2 若后面两步操作反了,在通常情况下不会出现问题,但是在电压不稳MCU频繁复位的情况下,非常容易造成MCU死掉,只能掉电后重新上电才能可靠复位。 今天做了一下时钟的实验 对于MCLK若选择了XT2 的话,在外部晶振XT2的使用过程中,需要特别注意的是,一旦外部晶振失效的话带来什么样的效果?对于这个效果,经过测试发现,当使用XT2作为MCLK和SMCLK的时钟源时若XT2不稳定,丢失一些时钟信号时这时MCLK会自动转换DCO作为其时钟源,经过测试,而SMCLK确依然用的是XT2(XT2只是波动一下,并非不工作),但是用示波器怎么测不出8M的晶振呢,测其它的怎么能测呢?不过时钟这一点搞清楚了 振荡器失效时,msp430也会自动将DCO选作为MCLK的时钟源,用户可以在DCO维持下在中断中检测OFIFG标志位,设置使用另外一个晶体振荡器来临时替代问题时钟源俩继续工作或完成发生警报等应急处理工作。 MSP430的时钟周期(振荡周期)、机器周期、指令周期之间的关系 机器周期:在计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。8051系列单片机的一个机器周期由6个S周期(状态周期)组成。一个S周期=2个时钟周期,所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。 指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同。 专用知识: 在430中,一个时钟周期= MCLK晶振的倒数。如果MCLK是8M,则一个时钟周期为1/8us即为125ns; 一个机器周期 =一个时钟周期,即430每个动作都能完成一个基本操作; 一个指令周期 = 1~6个机器周期,具体根据具体指令而定。 另:指令长度,只是一个存储单位与时间没有必然关系 MSP430的3种时钟信号:MCLK系统主时钟;SMCLK系统子时钟;ACLK辅助时钟。 (1)MCLK系统主时钟。除了CPU运算使用此时钟以外,外围模块也可以使用。MCLK可以选择任何一个振荡器所产生的时钟信号并进行1、2、4、8分频作为其信号源。 (2)SMCLK系统子时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。SMCLK可以选择DCO和XT2所产生的时钟信号并进行1、2、4、8分频作为其信号源。 (3)ACLK辅助时钟。供外围模块使用。并在使用前可以通过各模块的寄存器实现分频。但ACLK只能由LFXT1进行1、2、4、8分频作为信号源。
|
MSP430 系统时钟 ACLK、MCLK、SMCLK
1、LFXT1CLK: 外部晶振或时钟1 低频时钟源 低频模式:32768Hz 高频模式:(400KHz-16MHz)
2、XT2CLK: 外部晶振或时钟2 高频时钟源(400KHz-16MHz)
3、DCOCLK: 内部数字RC振荡器,复位值1.1MHz
4、VLOCLK: 内部低功耗振荡器 12KHz
【MSP430时钟】MSP430 5438时钟系统介绍
1-LFXT1CLK: 低频/高频时钟源.由外接晶体振荡器,而无需外接两个振荡电容器.较常使用的晶体振荡器是32768HZ。
2-XT2CLK: 高频时钟源.由外接晶体振荡器。需要外接两个振荡电容器,较常用的晶体振荡器是8MHZ。
MSP430X1X1系列产品中,其中XT1时钟源引脚接法有如3种应用。F13、14的XT1相同。需要注意的是,LFXT1只有工作在高频模式下才需要外接电容。
对以引脚较少的MSPX1XX系列产品中有着不同时基模块,具体如下:
MSP430F13X/14X/15X/16X:LFXT1CLK , DCO , XT2CLK
MSP430F4XX: LFXT1CLK , DCO , XT2CLK , FLL+
DCO.2 DCO.1 DCO.0 MOD.4 MOD.3 MOD.2 MOD.1 MOD.0
DCO.0-DCO.4 定义8种频率之一,可以分段调节DCOCLK频率,相邻两种频率相差10%。而频率由注入直流发生器的电流定义。
XT2OFF TXS DIVA.1 DIVA.0 XT5V Rsel.2 Resl.1 Resl.0
XTS 控制LFXT1 工作模式,选择需结合实际晶体振荡器连接情况。
XTS=1,LFXT1 工作在高频模式(必须连接有高频相应的高频时钟源)。
Resl1.0,Resl1.1,Resl1.2 三位控制某个内部电阻以决定标称频率。
SELM.1 SELM.0 DIVM.1 DIVM.0 SELS DIVS.1 DIVS.0 DCOR
2 时钟源为LFXT1CLK(对于MSP430F11/12X),时钟源为XT2CLK(对于MSP430F13/14/15/16X);
1 时钟源为LFXT1CLK(对于MSP430F11/12X),时钟源为XT2CLK(对于MSP430F13/14/15/16X)。
PUC信号之后,DCOCLK被自动选择MCLK时钟信号,根据需要,MCLK的时钟源可以另外设置为LFXT1或者XT2。设置顺序如下:
[4] 再次检查OFIFG,如果仍然置位,则重复[3]、[4]步骤,直到OFIFG=0为止。
例子:
#include <msp430F2234.h>
void main (void)
{
unsigned int i;
P2DIR = 0x10; //设置P2.4输出
P2SEL = 0x10; //设置P2.4口为外围模块用作MCLK信号输出
BCSCTL1 &= ~XT2OFF; //使TX2有效,TX2上电时默认为关闭的.
do
{
IFG1 &= ~OFIFG; //清振荡器失效标志
for(i= 0xff; i>0; i--); //延时,待稳定.
}
while ((IFG1 & OFIFG)!=0); //若振荡器失效标志有效
BCSCTL2 |= SELM1; //使MCLK = XT2
for(;;);
}
MSP430X5XX的时钟系统与低功耗模式
MSP430X5XX的时钟系统与低功耗模式
MSP430 & KYON 2010-06-01 08:14:20 阅读246 评论3 字号:大中小 订阅
引言:全新改版,关于MSP430x5xx时钟系统与低功耗模式介绍。用到低功耗的时候,不得不仔细的看文档,做比较实验,真繁琐。
430系列单片机中有各种时钟信号,第一次接触免不了一头雾水。而且如果想发挥430低功耗的优势,就不得不对它的时钟系统(Unified Clock System)有所了解。1. 时钟模块总览
转存失败重新上传取消
这是MSP430X5XX的时钟系统框图。乍一看很复杂,不过简化之后就清楚多了
转存失败重新上传取消
整个系统主要分为左右两大块,左边是时钟源模块,右边是时钟调整模块。
左边的模块——XT1、内建时钟(DCO)、XT2用来产生时钟源,也就是右边最终输出的时钟信号的基准信号。
而时钟调整模块负责将源时钟信号选通、分频输出成系统使用的三大时钟信号——MCLK,ACLK和SMCLK,分别是系统的主时钟(供CPU使用),辅助时钟(可给外设模块使用,也可以从管脚引出),子系统时钟(外设模块时钟,可从管教引出)。2. 调整模块
调整模块的主要工作分为两步:选通、分频。ACLK调整模块如下图所示
转存失败重新上传取消左端进线是源时钟信号。红色标出来的是XT1CLK信号。由图易知,XT1CLK要变成ACLK信号,需要经过两次选通,一次分频,也就是我红色标出来的路径。第一个选通器可通过设置SELA来控制,分频器可以通过设置DIVA来控制,正常工作的时候,最后一个选通器总是打开的,这里不讨论。换言之,要想设置ACLK,我们只需要配置SELA和DIVA。例如,如果我们希望ACLK是XT1CLK的2分频的话,需要设置SELA={0},DIVA={1}。再给一个来自TI的例子
UCSCTL4 |= SELA_2; // Set ACLK = REFO
这句话将ACLK的源设置为REFO。
SELA具体的含义如下图所示:顺便说一句,TI的这个例子没有设置DIVA,用了默认值。3.REFO、VLO和DCO
有了上述的理解,再参照slau208e,我相信不难写出我们想要的代码。不过整个UCS中最有特色的部分还没有介绍,那就是REFO、VLO和DCO。
REFO是内建的参考时钟,它很稳定,可以作为FLL的时钟基准(FLL是什么待会再说)。MSP430F5418上的REFOCLK是32.768kHz的。
VLO是一个内建的低频时钟。在5418上,它的频率是8.6kHz。
DCO是Digitally-Controlled Oscillator,数控晶振。它可以产生频率很高的时钟。通过配置,它可以产生百兆以上的时钟信号。在5418上,电压等级1的时候,不用XT2,有FLL(这个FLL到底是什么呢?),我调出的最高频率是26MHz。
吊了这么半天胃口,来说一下这个FLL是什么东西。
FLL是Frequency Locked Loop,锁频环。先来个特写 FLL的作用是稳定DCO的输出,让它不受扰动的影响。它是一种反馈。前边我们说过,REFO是个很稳定的内部时钟信号。FLL可以拿REFOCLK做参考,以此来自动校准并稳定DCOCLK和DCOCLKDIV。除了REFOCLK之外,还可以用XT1或XT2做FLL的参考信号。当启用FLL之后(默认启用),图中的DCO,MOD可以不用设置,FLL会自行调整这两个值。DCO输出的频率与以下几个量有关:
FLLD,FLLN,FLLREFDIV,FLLREFCLK
计算公式如下:
fDCOCLK = D × (N + 1) × (fFLLREFCLK ÷ n)
fDCOCLKDIV = (N + 1) × (fFLLREFCLK ÷ n)
其中
D=1,2,4,8,16,32(对应FLLD=0,1,2,3,4,5)
N=FLLN
n=1,2,4,8,12,16(对应FLLREFDIV=0,1,2,3,4,5)
fFLLREFCLK为REFOCLK,XT1或XT2的实际频率。
比如,我们想设置DCO输出1MHz的时钟信号,可以设置这样一组值:
FLLD=1,对应D=2;FLLN=60;FLLREFDIV=2,对应n=4;fFLLREFCLK=fREFOCLK=32.768kHz
所以
fDCOCLK=2×(60+1)×(32.768/4)=999.424kHz,fDCOCLKDIV=fDCOCLK/2=499.712kHz
实际测试fDCOCLK=1.006MHz。4.频率范围和电压等级
MSP430把内核的工作频率划分为若干范围,比如543x和541x的工作频率就被分为了8个范围。每个范围又被DCO这个参数分为了32个小段,每个小段又被MOD分为32个小小段(待验证)。所以可以把DCO看作是粗调旋钮,MOD是微调旋钮。另外,需要注意的是,这个频率范围是指DCO的频率范围,当DCO被禁用的时候,这个范围就没意义了。
喜欢超频的同学都知道,核心电压和工作频率之间有着密切的关系。430单片机也是如此,它有4个电压等级,涵盖了从1.2V到2V广阔的核心电压范围。
一般来说,核心电压越高,频率范围越大,功耗越大;核心电压越低,频率范围越小,功耗越小。
当电压等级为1的时候(默认电压等级),5418的各个频率范围的可用上下限如下表所示:
5418各频率范围上下限详表
从这个表中可以看出,除了前边谈到的几个参数,还有大量的其他寄存器参数。具体的含义可以从参考文献中查知。如果觉得翻看pdf太累的话,可以向我索要xls格式的详表(moosewolerATgmailDOTcom),上边有我加的批注和公式,可以帮助大家方便的设置频率。5.UCS关键寄存器
详表中我用颜色对8个UCS相关的寄存器进行了分组。这8个寄存器可以分为6组:
- UCSCTL0、UCSCTL1:DCO配置寄存器。配置DCO频率范围。禁用FLL的时候,设置DCO的开环输出频率。
- UCSCTL2、UCSCTL3:FLL配置寄存器。这个已经在3.REFO、VLO和DCO中讲过了
- UCSCTL4、UCSCTL5:MCLK、SMCLK、ACLK配置寄存器。这个在2. 调整模块中讲过了
- UCSCTL6:外置晶振配置寄存器。可以设定外接晶振的驱动电流,内置电容等参数。
- UCSCTL7:UCS模块错误寄存器。可以指示UCS当前的错误状态
- UCSCTL8:UCS请求寄存器。这个后面解释
因为54xx系列单片机内置晶振(REFO),所以
- FLL配置寄存器是最重要的一组寄存器,它直接和工作频率相关。
- 其次是DCO配置寄存器,说它重要,只是因为DCORSEL这个参数在这组寄存器中。当设置的频率无法达到的时候,先确定一下频率范围是否合适。
这两个寄存器弄明白了,就可以让UCS输出正常的工作频率了。
其他的寄存器都各有各的作用,具体怎么用可以查看参考文献。6.MSP430的低功耗模式A.1 一个设置时钟频率的样例
void McuSetFrequency(void) { // 关看门狗 WDTCTL = WDTPW+WDTHOLD; // 关FLL,等设置完成后,再开启FLL __bis_SR_register(SCG0); // MCLK=SMCLK=1MHz; ACLK=32.768kHz; FLL允许 UCSCTL0 = 0x0000; UCSCTL1 = 0x0010; UCSCTL2 = 0x103C; UCSCTL3 = 0x0022; UCSCTL4 = 0x0233; UCSCTL5 = 0x0000; UCSCTL6 = 0x0101; UCSCTL7 = 0x0000; UCSCTL8 = 0x0007; // 重新开启FLL __bic_SR_register(SCG0); // 延时等待FLL自动调整DCO,250000是根据8MHz时钟设置的。 // 最惨的状况是FLL把DCO从0开始调到31后才稳定,这个延时即是根据这种情况算得的。 __delay_cycles(250000); // 等待异常标志清除 // 用VLO和REFO做MCLK的时钟源的时候,不需要考虑这些标志,直接用。do { // 清异常标志 UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); SFRIFG1 &= ~OFIFG; }while (SFRIFG1&OFIFG); // 看看异常是否还在 } |
参考文献:
[slau208e] MSP430x5xx Family User Guide
[slas612] MSP430F543x(A), MSP430F541x(A) Mixed Signal Microcontroller
[slac166o] MSP430F54xx Code Examples Rev0
注:
所有带文献编号的参考文献可以从www.ti.com网站获得。http://moosewoler.blog.163.com/blog/static/698660520105181420966/
【嵌入式】MSP430系统实时时钟RTC学习日志(完善中)相关推荐
- STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读
记录一下,方便以后翻阅~ 主要内容 1) RTC特征与原理: 2) BKP备份寄存器特征与原理: 3) RTC常用寄存器+库函数介绍: 4) 相关实验代码解读. 实验内容: 因为没有买LCD屏,所以计 ...
- 【STM32学习】实时时钟 —— RTC
[STM32学习]实时时钟 -- RTC 零.参考 一.工作原理 1.RTC介绍 2.工作过程 二.相关寄存器 三.代码说明 1.rtc初始化 2.关于中断 3.中断配置代码(仅供参考) 3.1 秒中 ...
- stm32之实时时钟RTC(掉电计时保持、秒中断、闹钟中断、溢出中断)
前言:stm32系列产品普遍都有实时时钟RTC模块,它提供一个掉电保持计时功能,掉电后由后备供电区域供电.除了提供时间和日期之外,还可以设置闹钟提醒,且可以在待机模式下设置闹钟唤醒系统.在一些小容量. ...
- linux设备树例程,iTOP-iMX6-设备树内核-实时时钟RTC以及Linux-c测试例程
当 Linux 开发者谈论一个实时时钟,他们通常指的是某种能记录墙上时间,并且有备用电 池,以至于在系统关机的时候仍然可以工作的器件. Linux 有两个系列广泛兼容的用户空间 RTC 设备节点: • ...
- imx6 linux 时钟,迅为-iMX6开发板-驱动-实时时钟RTC以及Linux-c测试例程
当Linux开发者谈论一个实时时钟,他们通常指的是某种能记录墙上时间,并且有备用电 池,以至于在系统关机的时候仍然可以工作的器件. Linux 有两个系列广泛兼容的用户空间 RTC 设备节点: /de ...
- ESP32设备驱动-DS3231实时时钟(RTC)驱动
DS3231实时时钟(RTC)驱动 1.DS3231介绍 DS3231 是一款低成本.极其精确的 I2C 实时时钟 (RTC),具有集成的温度补偿晶体振荡器 (TCXO) 和晶体. 该设备包含电池输入 ...
- ESP8266-Arduino编程实例-PCF8563实时时钟(RTC)驱动
PCF8563实时时钟(RTC)驱动 1.PCF8563介绍 PCF8563 是针对低功耗优化的 CMOS 实时时钟 (RTC) 和日历. 还提供了可编程时钟输出.中断输出和低电压检测器. 所有地址和 ...
- 蓝桥杯嵌入式 ---- “空手套白狼“ 之 实时时钟 RTC
文章目录 前言 一.RTC初始化 二.RTC应用函数 三.RTC中断函数 四.RTC在主函数的应用 前言 本文是基于嵌入式开发板CT117E,stm32f103RBT6."空手套白狼&quo ...
- 实时时钟 (RTC)
文章目录 一.RTC简介 二.主要特性 三.功能描述 1. 概述 2. 复位过程 3. 读RTC寄存器 4. 配置RTC寄存器 5. RTC标志的设置 四.RTC寄存器描述 1. RTC控制寄存器高位 ...
最新文章
- Element-ui表格选中回显
- 自己珍藏一些有趣的Python子程序
- DL之DeconvNet:DeconvNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- ASP.NET Core Blazor WebAssembly 之 .NET JavaScript互调
- [NOIP2005] 提高组 洛谷P1051 谁拿了最多奖学金
- origin 设置数据显示位数
- 记录一个crontab的中使用python脚本的坑
- Flutter进阶—网络与本地异步加载资源
- USBCAN上位机软件的使用
- EPUB、CAJ 、PDF 格式的区别,有什么好用的安卓epub阅读器
- mysql notifier启动_开机的时候mysql notifier报错无法启动怎么办?
- Calibre中使用DeDRM插件进行Kindle电子书解锁
- POJ3169 Layout , 最短路算法解差分约束问题
- 爱她就送ta一场樱花雨
- 大前端 (六) -- HTML5 标签 5
- 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.6 异构建模的方法...
- 按键精灵脚本-windows桌面自动化操作
- 手机5g什么时候普及_5G网络什么时候普及,5G手机什么时候买比较合适?
- UIResponder事件处理 _Lenny Kwok
- 仙剑5手游服务器维护,仙剑奇侠传手游5月20日活动有哪些?5.20日例行维护时间...
热门文章
- Python神经网络编程 | 专场送书活动
- 51单片机串口SBUF是特殊寄存器,只要不写入新的数据就不会消失,写入新的数据就会覆盖之前的,单片机复位后初始值为不确定值
- c语言寄存器头文件共用重复定义,C语言头文件的使用
- 微信小程序WebView嵌入别人网页的解决办法
- 宽带响应超时服务器无应答,宽带服务器无应答怎么办
- 项目初期BUG记录-20220622
- 1分钟链圈 | 比特大陆推出挖矿路由器!苏宁正式上线区块链产品“星际家园”...
- 短视频怎么获得高流量?简单小技巧,让你的短视频被更多人看到
- windows PHP 5 版本的下载
- Windows9x系统下汉字输入法的基本原理