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

江西南昌网站制作seo优化seo外包

江西南昌网站制作,seo优化seo外包,wordpress添加下载页,河南焦作有做网站开发的公司吗RTC:实时时钟 1、实时时钟2、闹钟中断3、秒中断4、输出功能5、BKP的读写6、BKP的侵入事件 1、实时时钟 ①RTC.c #include "RTC.h"/*** brief:RTC初始化函数*/ RCC_PeriphCLKInitTypeDef RTCPeriphClkInit; //RTC时钟配置结构体 RTC_HandleT…

RTC:实时时钟

  • 1、实时时钟
  • 2、闹钟中断
  • 3、秒中断
  • 4、输出功能
  • 5、BKP的读写
  • 6、BKP的侵入事件

1、实时时钟

①RTC.c

#include "RTC.h"/*** @brief:RTC初始化函数*/
RCC_PeriphCLKInitTypeDef RTCPeriphClkInit;  //RTC时钟配置结构体
RTC_HandleTypeDef hrtc;                     //RTC配置结构体
void RTC_Init(void)
{/* 配置RTC的时钟源 */RTCPeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC; //需要配置的外设:RTCRTCPeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; //RTC时钟源:LSE(外部低速时钟)HAL_RCCEx_PeriphCLKConfig(&RTCPeriphClkInit);/* RTC的初始化配置 */__HAL_RCC_RTC_ENABLE();                     //使能RTC的时钟__HAL_RCC_PWR_CLK_ENABLE();                 //使能PWR的时钟__HAL_RCC_BKP_CLK_ENABLE();                 //使能BKP的时钟hrtc.Instance = RTC;                        //选择RTChrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND; //时钟源的分频值,1Hzhrtc.Init.OutPut = RTC_OUTPUTSOURCE_NONE;   //无输出HAL_RTC_Init(&hrtc);
}/*** @brief:HAL_RTC_Init()调用函数*/
void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc)
{/* 其他的配置 */
}/*** @brief:日期转换为时间戳秒函数*/
void Time_Set(int Year,int Mon,int Day,int Hour,int Min,int Sec)
{struct tm DayData;              //定义结构体变量DayDataDayData.tm_year = Year - 1900;  //设置为2025年DayData.tm_mon = Mon;           //设置为1月DayData.tm_mday = Day;          //设置为2号DayData.tm_hour = Hour;         //设置为20时DayData.tm_min = Min;           //设置为04分DayData.tm_sec = Sec;           //设置为40秒time_t temp = mktime(&DayData);                     //将设置的日期转换为时间挫数据__HAL_RTC_WRITEPROTECTION_DISABLE(&hrtc);           //关闭RTC写保护WRITE_REG(hrtc.Instance->CNTH,(temp >> 16));        //将转换好的时间挫写入RTC计数寄存器高16位WRITE_REG(hrtc.Instance->CNTL,temp & 0x0000FFFF);   //将转换好的时间挫写入RTC计数寄存器低16位__HAL_RTC_WRITEPROTECTION_ENABLE(&hrtc);            //开启RTC写保护
}/*** @brief:将RTC中的计数器寄存器值转换为日期*/
struct tm* Time_Get(void)
{/* 读取数据寄存器的值 */time_t temp = (READ_REG(hrtc.Instance->CNTH) << 16) | READ_REG(hrtc.Instance->CNTL);/* 将计数器的值转换为日期 */return localtime(&temp);//将时间戳转换为本地的年月日时分秒
}

②RTC.h

#ifndef __RTC_H
#define __RTC_H#include "stm32f1xx_hal.h"
#include <time.h>
extern RTC_HandleTypeDef hrtc;  //RTC配置结构体
void RTC_Init(void);
void Time_Set(int Year,int Mon,int Day,int Hour,int Min,int Sec);
struct tm* Time_Get(void);#endif

③main.c

#include "stm32f1xx_hal.h"
#include "STM32_RCC_Init.h"
#include "RTC.h"
#include "UART.h"struct tm* Day; 
int main(void){HAL_Init();HSE_RCC_Init(); UART1_Init(115200);RTC_Init();printf("代码测试\r\n");Time_Set(2025,1,2,21,8,30);//2025-01-02 20:55:30while(1){Day = Time_Get();printf("%d-%d-%d %d:%d:%d\r\n",Day->tm_year + 1900,Day->tm_mon,Day->tm_mday,Day->tm_hour,Day->tm_min,Day->tm_sec);HAL_Delay(1000);}	
}

在这里插入图片描述

2、闹钟中断

①RTC.c

#include "RTC.h"/*** @brief:RTC初始化函数*/
RCC_PeriphCLKInitTypeDef RTCPeriphClkInit;  //RTC时钟配置结构体
RTC_HandleTypeDef hrtc;                     //RTC配置结构体
void RTC_Init(void)
{/* 配置RTC的时钟源 */RTCPeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC; //需要配置的外设:RTCRTCPeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; //RTC时钟源:LSE(外部低速时钟)HAL_RCCEx_PeriphCLKConfig(&RTCPeriphClkInit);/* RTC的初始化配置 */__HAL_RCC_RTC_ENABLE();                     //使能RTC的时钟__HAL_RCC_PWR_CLK_ENABLE();                 //使能PWR的时钟__HAL_RCC_BKP_CLK_ENABLE();                 //使能BKP的时钟hrtc.Instance = RTC;                        //选择RTChrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND; //时钟源的分频值,1Hzhrtc.Init.OutPut = RTC_OUTPUTSOURCE_NONE;   //无输出HAL_RTC_Init(&hrtc);/* 开启闹钟中断 */__HAL_RTC_ALARM_CLEAR_FLAG(&hrtc, RTC_FLAG_ALRAF);  //清除闹钟标志__HAL_RTC_ALARM_ENABLE_IT(&hrtc, RTC_IT_ALRA);      //开启闹钟中断__HAL_RTC_ALARM_EXTI_ENABLE_IT();                   //开启闹钟外部中断线,EXTI17为闹钟事件__HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE();          //上升沿触发HAL_NVIC_SetPriority(RTC_Alarm_IRQn,3,0);HAL_NVIC_EnableIRQ(RTC_Alarm_IRQn);
}/*** @brief:HAL_RTC_Init()调用函数*/
void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc)
{/* 其他的配置 */
}/*** @brief:日期转换为时间挫函数*/
void Time_Set(int Year,int Mon,int Day,int Hour,int Min,int Sec)
{struct tm DayData;              //定义结构体变量DayDataDayData.tm_year = Year - 1900;  //设置为2025年DayData.tm_mon = Mon;           //设置为1月DayData.tm_mday = Day;          //设置为2号DayData.tm_hour = Hour;         //设置为20时DayData.tm_min = Min;           //设置为04分DayData.tm_sec = Sec;           //设置为40秒time_t temp = mktime(&DayData);                     //将设置的日期转换为时间挫数据__HAL_RTC_WRITEPROTECTION_DISABLE(&hrtc);           //关闭RTC写保护WRITE_REG(hrtc.Instance->CNTH,(temp >> 16));        //将转换好的时间挫写入RTC计数寄存器高16位WRITE_REG(hrtc.Instance->CNTL,temp & 0x0000FFFF);   //将转换好的时间挫写入RTC计数寄存器低16位__HAL_RTC_WRITEPROTECTION_ENABLE(&hrtc);            //开启RTC写保护HAL_Delay(20);                                      //等待写保护成功,必须要有
}/*** @brief:闹钟时间转换为时间挫函数*/
void AlarmTime_Set(int Year,int Mon,int Day,int Hour,int Min,int Sec)
{struct tm DayData;              //定义结构体变量DayDataDayData.tm_year = Year - 1900;  //设置为2025年DayData.tm_mon = Mon;           //设置为1月DayData.tm_mday = Day;          //设置为2号DayData.tm_hour = Hour;         //设置为20时DayData.tm_min = Min;           //设置为04分DayData.tm_sec = Sec;           //设置为40秒time_t temp = mktime(&DayData);                     //将设置的日期转换为时间挫数据__HAL_RTC_WRITEPROTECTION_DISABLE(&hrtc);           //关闭RTC写保护WRITE_REG(hrtc.Instance->ALRH,(temp >> 16));        //将转换好的时间挫写入RTC闹钟寄存器高16位WRITE_REG(hrtc.Instance->ALRL,temp & 0x0000FFFF);   //将转换好的时间挫写入RTC闹钟寄存器低16位__HAL_RTC_WRITEPROTECTION_ENABLE(&hrtc);            //开启RTC写保护HAL_Delay(20);                                      //等待写保护成功,必须要有
}/*** @brief:将RTC中的计数器寄存器值转换为日期*/
struct tm* Time_Get(void)
{/* 读取数据寄存器的值 */time_t temp = (READ_REG(hrtc.Instance->CNTH) << 16) | READ_REG(hrtc.Instance->CNTL);/* 将计数器的值转换为日期 */return localtime(&temp);//将时间戳转换为本地的年月日时分秒
}

②RTC.h

#ifndef __RTC_H
#define __RTC_H#include "stm32f1xx_hal.h"
#include <time.h>
extern RTC_HandleTypeDef hrtc;  //RTC配置结构体
void RTC_Init(void);
void Time_Set(int Year,int Mon,int Day,int Hour,int Min,int Sec);
void AlarmTime_Set(int Year,int Mon,int Day,int Hour,int Min,int Sec);
struct tm* Time_Get(void);#endif

③main.c

#include "stm32f1xx_hal.h"
#include "STM32_RCC_Init.h"
#include "RTC.h"
#include "UART.h"struct tm* Day; 
int main(void){HAL_Init();HSE_RCC_Init(); UART1_Init(115200);RTC_Init();printf("代码测试\r\n");Time_Set(2025,1,2,21,8,30);         //2025-01-02 20:55:30AlarmTime_Set(2025,1,2,21,8,35);    //闹钟时钟为2025-01-02 20:55:35while(1){Day = Time_Get();printf("%d-%d-%d %d:%d:%d\r\n",Day->tm_year + 1900,Day->tm_mon,Day->tm_mday,Day->tm_hour,Day->tm_min,Day->tm_sec);HAL_Delay(1000);}	
}

④stm32f1xx_it.c

#include "stm32f1xx_hal.h"   
#include "stm32f1xx_it.h" 
#include "RTC.h" 
#include "UART.h"/*** @brief:RTC闹钟中断服务函数*/
void RTC_Alarm_IRQHandler(void)
{HAL_RTC_AlarmIRQHandler(&hrtc);
}
/******************* 下面的中断的回调函数 ***************************/
/*** @brief:RTC闹钟中断回调函数函数*/
void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
{printf("起床啦!\r\n");
}

在这里插入图片描述

3、秒中断

①RTC.c

#include "RTC.h"/*** @brief:RTC初始化函数*/
RCC_PeriphCLKInitTypeDef RTCPeriphClkInit;  //RTC时钟配置结构体
RTC_HandleTypeDef hrtc;                     //RTC配置结构体
void RTC_Init(void)
{/* 配置RTC的时钟源 */RTCPeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC; //需要配置的外设:RTCRTCPeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; //RTC时钟源:LSE(外部低速时钟)HAL_RCCEx_PeriphCLKConfig(&RTCPeriphClkInit);/* RTC的初始化配置 */__HAL_RCC_RTC_ENABLE();                     //使能RTC的时钟__HAL_RCC_PWR_CLK_ENABLE();                 //使能PWR的时钟__HAL_RCC_BKP_CLK_ENABLE();                 //使能BKP的时钟hrtc.Instance = RTC;                        //选择RTChrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND; //时钟源的分频值,1Hzhrtc.Init.OutPut = RTC_OUTPUTSOURCE_NONE;   //无输出HAL_RTC_Init(&hrtc);/* 开启秒中断 */HAL_RTCEx_SetSecond_IT(&hrtc);              //开启秒中断HAL_NVIC_SetPriority(RTC_IRQn,3,0);HAL_NVIC_EnableIRQ(RTC_IRQn);
}/*** @brief:HAL_RTC_Init()调用函数*/
void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc)
{/* 其他的配置 */
}/*** @brief:日期转换为时间挫函数*/
void Time_Set(int Year,int Mon,int Day,int Hour,int Min,int Sec)
{struct tm DayData;              //定义结构体变量DayDataDayData.tm_year = Year - 1900;  //设置为2025年DayData.tm_mon = Mon;           //设置为1月DayData.tm_mday = Day;          //设置为2号DayData.tm_hour = Hour;         //设置为20时DayData.tm_min = Min;           //设置为04分DayData.tm_sec = Sec;           //设置为40秒time_t temp = mktime(&DayData);                     //将设置的日期转换为时间挫数据__HAL_RTC_WRITEPROTECTION_DISABLE(&hrtc);           //关闭RTC写保护WRITE_REG(hrtc.Instance->CNTH,(temp >> 16));        //将转换好的时间挫写入RTC计数寄存器高16位WRITE_REG(hrtc.Instance->CNTL,temp & 0x0000FFFF);   //将转换好的时间挫写入RTC计数寄存器低16位__HAL_RTC_WRITEPROTECTION_ENABLE(&hrtc);            //开启RTC写保护HAL_Delay(20);                                      //等待写保护成功,必须要有
}/*** @brief:闹钟时间转换为时间挫函数*/
void AlarmTime_Set(int Year,int Mon,int Day,int Hour,int Min,int Sec)
{struct tm DayData;              //定义结构体变量DayDataDayData.tm_year = Year - 1900;  //设置为2025年DayData.tm_mon = Mon;           //设置为1月DayData.tm_mday = Day;          //设置为2号DayData.tm_hour = Hour;         //设置为20时DayData.tm_min = Min;           //设置为04分DayData.tm_sec = Sec;           //设置为40秒time_t temp = mktime(&DayData);                     //将设置的日期转换为时间挫数据__HAL_RTC_WRITEPROTECTION_DISABLE(&hrtc);           //关闭RTC写保护WRITE_REG(hrtc.Instance->ALRH,(temp >> 16));        //将转换好的时间挫写入RTC闹钟寄存器高16位WRITE_REG(hrtc.Instance->ALRL,temp & 0x0000FFFF);   //将转换好的时间挫写入RTC闹钟寄存器低16位__HAL_RTC_WRITEPROTECTION_ENABLE(&hrtc);            //开启RTC写保护HAL_Delay(20);                                      //等待写保护成功,必须要有
}/*** @brief:将RTC中的计数器寄存器值转换为日期*/
struct tm* Time_Get(void)
{/* 读取数据寄存器的值 */time_t temp = (READ_REG(hrtc.Instance->CNTH) << 16) | READ_REG(hrtc.Instance->CNTL);/* 将计数器的值转换为日期 */return localtime(&temp);//将时间戳转换为本地的年月日时分秒
}

②RTC.h

#ifndef __RTC_H
#define __RTC_H#include "stm32f1xx_hal.h"
#include <time.h>
extern RTC_HandleTypeDef hrtc;  //RTC配置结构体
void RTC_Init(void);
void Time_Set(int Year,int Mon,int Day,int Hour,int Min,int Sec);
void AlarmTime_Set(int Year,int Mon,int Day,int Hour,int Min,int Sec);
struct tm* Time_Get(void);#endif

③main.c

#include "stm32f1xx_hal.h"
#include "STM32_RCC_Init.h"
#include "RTC.h"
#include "UART.h"
#include "LED.h"struct tm* Day; 
int main(void){HAL_Init();HSE_RCC_Init(); UART1_Init(115200);LED_GPIO_Init();RTC_Init();printf("代码测试\r\n");Time_Set(2025,1,2,21,8,30);         //2025-01-02 20:55:30while(1){Day = Time_Get();printf("%d-%d-%d %d:%d:%d\r\n",Day->tm_year + 1900,Day->tm_mon,Day->tm_mday,Day->tm_hour,Day->tm_min,Day->tm_sec);HAL_Delay(1000);}	
}

④stm32f1xx_it.c

#include "stm32f1xx_hal.h"   
#include "stm32f1xx_it.h" 
#include "RTC.h" 
#include "UART.h"
#include "LED.h"/*** @brief:RTC秒中断服务函数*/
void RTC_IRQHandler(void)
{HAL_RTCEx_RTCIRQHandler(&hrtc);
}/******************* 下面的中断的回调函数 ***************************/
/*** @brief:RTC秒中断回调函数*/
void HAL_RTCEx_RTCEventCallback(RTC_HandleTypeDef *hrtc)
{LED_Turn();
}

4、输出功能

①RTC.c文件需要修改的代码如下

hrtc.Init.OutPut = RTC_OUTPUTSOURCE_SECOND; //输出:秒脉冲
hrtc.Init.OutPut = RTC_OUTPUTSOURCE_ALARM ; //输出:闹钟脉冲
hrtc.Init.OutPut = RTC_OUTPUTSOURCE_CALIBCLOCK; //输出:32768Hz/64后的脉冲

输出引脚是PC13,但是不用配置它。其他的代码不用修改

5、BKP的读写

BKP的读写需要RTC的配置,但是不需要开启LSE的时钟源。只需要打开RTC时钟+配置RTC总控结构体
①RTC.c文件的代码如下

#include "RTC.h"/*** @brief:RTC初始化函数*/
RTC_HandleTypeDef hrtc;                     //RTC配置结构体
void RTC_Init(void)
{    /* RTC的初始化配置 */__HAL_RCC_RTC_ENABLE();                     //使能RTC的时钟__HAL_RCC_PWR_CLK_ENABLE();                 //使能PWR的时钟__HAL_RCC_BKP_CLK_ENABLE();                 //使能BKP的时钟hrtc.Instance = RTC;                        //选择RTCHAL_RTC_Init(&hrtc);
}/*** @brief:HAL_RTC_Init()调用函数*/
void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc)
{/* 其他的配置 */
}

②main.c文件的代码如下

#include "stm32f1xx_hal.h"
#include "STM32_RCC_Init.h"
#include "RTC.h"
#include "UART.h"uint16_t Data = 0x1234;
int main(void){HAL_Init();HSE_RCC_Init(); UART1_Init(115200);RTC_Init();										//初始化BKPprintf("代码测试\r\n");HAL_RTCEx_BKUPWrite(&hrtc, 1, Data);            //向BKP的第一个数据寄存器写入数据printf("%x\r\n",HAL_RTCEx_BKUPRead(&hrtc, 1));  //读取BKP的第一个数据寄存器的数据while(1){}	
}

在这里插入图片描述

6、BKP的侵入事件

若发生了侵入事件,会将BKP中的数据清除(主电源断电,侵入事件也有效)。侵入事件检测引脚为PC13且检测电平。但是我们不用配置PC13。
在这里插入图片描述当侵入事件产生后,应该先关闭侵入检测。需要侵入检测则重新调用API函数开启侵入检测。
①RTC.c文件的代码如下

#include "RTC.h"/*** @brief:RTC初始化函数*/
RTC_HandleTypeDef hrtc;                     //RTC配置结构体
RTC_TamperTypeDef Tamper;                   //侵入事件配置结构体
void RTC_Init(void)
{    /* RTC的初始化配置 */__HAL_RCC_RTC_ENABLE();                     //使能RTC的时钟__HAL_RCC_PWR_CLK_ENABLE();                 //使能PWR的时钟__HAL_RCC_BKP_CLK_ENABLE();                 //使能BKP的时钟hrtc.Instance = RTC;                        //选择RTCHAL_RTC_Init(&hrtc);/* 侵入事件配置 */Tamper.Tamper = RTC_TAMPER_1;                   //指定引脚:PC13Tamper.Trigger = RTC_TAMPERTRIGGER_HIGHLEVEL;   //高电平触发HAL_RTCEx_SetTamper_IT(&hrtc,&Tamper);          //配置侵入事件,开启中断HAL_NVIC_SetPriority(TAMPER_IRQn,3,0);HAL_NVIC_EnableIRQ(TAMPER_IRQn);
}

②main.c文件的代码如下

#include "stm32f1xx_hal.h"
#include "STM32_RCC_Init.h"
#include "RTC.h"
#include "UART.h"uint16_t Data = 0x1234;
int main(void){HAL_Init();HSE_RCC_Init(); UART1_Init(115200);RTC_Init();										//初始化BKP,初始化侵入事件printf("代码测试\r\n");HAL_RTCEx_BKUPWrite(&hrtc, 1, Data);            //向BKP的第一个数据寄存器写入数据printf("%x\r\n",HAL_RTCEx_BKUPRead(&hrtc, 1));  //读取BKP的第一个数据寄存器的数据while(1){}	
}

③stm32f1xx_it.c文件的代码如下

#include "stm32f1xx_hal.h"   
#include "stm32f1xx_it.h" 
#include "RTC.h" 
#include "UART.h"/*** @brief:RTC侵入事件中断服务函数*/
void TAMPER_IRQHandler(void)
{HAL_RTCEx_TamperIRQHandler(&hrtc);
}/******************* 下面的中断的回调函数 ***************************/
/*** @brief:RTC侵入中断回调函数*/
void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc)
{printf("发生侵入事件了\r\n");HAL_RTCEx_DeactivateTamper(hrtc, RTC_TAMPER_1);//关闭侵入事件
}

文章转载自:
http://retinite.nrpp.cn
http://inconnu.nrpp.cn
http://greengrocer.nrpp.cn
http://orangutan.nrpp.cn
http://ciceronian.nrpp.cn
http://faster.nrpp.cn
http://craniad.nrpp.cn
http://housecoat.nrpp.cn
http://adumbrant.nrpp.cn
http://kaiserin.nrpp.cn
http://brabble.nrpp.cn
http://parenchyma.nrpp.cn
http://rachitic.nrpp.cn
http://recidivity.nrpp.cn
http://pishpek.nrpp.cn
http://immelmann.nrpp.cn
http://bloodroot.nrpp.cn
http://yawping.nrpp.cn
http://ghastliness.nrpp.cn
http://speedflash.nrpp.cn
http://radiosodium.nrpp.cn
http://genova.nrpp.cn
http://compellent.nrpp.cn
http://lissotrichous.nrpp.cn
http://unify.nrpp.cn
http://northern.nrpp.cn
http://whitehanded.nrpp.cn
http://sibyl.nrpp.cn
http://cotyloid.nrpp.cn
http://actuarial.nrpp.cn
http://pleiotaxy.nrpp.cn
http://regurgitant.nrpp.cn
http://distinctively.nrpp.cn
http://volitation.nrpp.cn
http://physiatrics.nrpp.cn
http://synchronization.nrpp.cn
http://examinant.nrpp.cn
http://babysat.nrpp.cn
http://scientism.nrpp.cn
http://yager.nrpp.cn
http://primogenitary.nrpp.cn
http://countergirl.nrpp.cn
http://contraoctave.nrpp.cn
http://backfence.nrpp.cn
http://arbovirus.nrpp.cn
http://dactylology.nrpp.cn
http://panful.nrpp.cn
http://discontentedly.nrpp.cn
http://wadable.nrpp.cn
http://pectinaceous.nrpp.cn
http://glycine.nrpp.cn
http://parakeratosis.nrpp.cn
http://grouchy.nrpp.cn
http://phrenological.nrpp.cn
http://clipboard.nrpp.cn
http://solarism.nrpp.cn
http://embarrassingly.nrpp.cn
http://itinerant.nrpp.cn
http://endothermal.nrpp.cn
http://compander.nrpp.cn
http://cornball.nrpp.cn
http://ephesus.nrpp.cn
http://secularization.nrpp.cn
http://rattletrap.nrpp.cn
http://exasperate.nrpp.cn
http://idyllize.nrpp.cn
http://bern.nrpp.cn
http://adit.nrpp.cn
http://scotchwoman.nrpp.cn
http://anthracite.nrpp.cn
http://shabbily.nrpp.cn
http://prevocational.nrpp.cn
http://mitreblock.nrpp.cn
http://sirdar.nrpp.cn
http://cotarnine.nrpp.cn
http://urinant.nrpp.cn
http://small.nrpp.cn
http://quinquina.nrpp.cn
http://telegnosis.nrpp.cn
http://cetology.nrpp.cn
http://lighthouse.nrpp.cn
http://burleigh.nrpp.cn
http://wasteweir.nrpp.cn
http://glassiness.nrpp.cn
http://oleomargarine.nrpp.cn
http://isotach.nrpp.cn
http://edacity.nrpp.cn
http://yatata.nrpp.cn
http://hireling.nrpp.cn
http://pyrocrystalline.nrpp.cn
http://viscoelasticity.nrpp.cn
http://incurrent.nrpp.cn
http://terror.nrpp.cn
http://vortumnus.nrpp.cn
http://gbs.nrpp.cn
http://pastiness.nrpp.cn
http://bureaucratese.nrpp.cn
http://impolitic.nrpp.cn
http://macroaggregate.nrpp.cn
http://plantation.nrpp.cn
http://www.dt0577.cn/news/92886.html

相关文章:

  • 政府门户网站建设多元化全国免费发布广告信息平台
  • 免费国外服务器地址百度网站优化工具
  • 前端只是做网站吗apple私人免费网站怎么下载
  • 可以做初中地理题的网站长沙电商优化
  • 网站建设要不要监理优化网站最好的刷排名软件
  • 松山湖仿做网站seo技术培训广东
  • 免费外贸网站模板下载怎么开展网络营销推广
  • 怎么区分营销型网站推广教程
  • 营销型网站的案例百度推广优化怎么做
  • 网站建设销售该学的谷歌排名优化
  • 广东网站建设报价软文技巧
  • 郑州做网站公司水果网络营销策划书
  • 网站模板 北京公司企业网络营销的模式有哪些
  • wordpress 评论显示头像百度快照优化排名推广
  • 电子政务公开 网站建设关键词林俊杰歌词
  • 手机网站免费建设平台电子商务网站建设多少钱
  • 中铝国际山东建设有限公司网站引擎搜索下载
  • 南昌做网站多少钱网站视频播放代码
  • 上国外网站的dns拼多多运营
  • 好的家装设计河南做网站优化
  • 做网站的网页百度的营销推广模式
  • 网站优化排名怎么做网站的营销推广
  • php做不了大型网站可免费投放广告的平台
  • 网站后台管理功能日本站外推广网站
  • 广州疫情风险等级上海谷歌seo推广公司
  • 钓鱼网站下载安装长沙网络推广网站制作
  • 网站开发需要学些什么?怎么制作一个网站5个网页
  • 小游戏 打开以下属于网站seo的内容是
  • 字画网站建设无锡网络优化推广公司
  • 怎么建公司官网成都搜索优化排名公司