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

销售行业怎样做网站建网站需要准备什么

销售行业怎样做网站,建网站需要准备什么,网页制作成品下载免费,wordpress原生封装appSTM32存储左右互搏 SDIO总线读写SD/MicroSD/TF卡 SD/MicroSD/TF卡是基于FLASH的一种常见非易失存储单元#xff0c;由接口协议电路和FLASH构成。市面上由不同尺寸和不同容量的卡#xff0c;手机领域用的TF卡实际就是MicroSD卡#xff0c;尺寸比SD卡小#xff0c;而电路和协…STM32存储左右互搏 SDIO总线读写SD/MicroSD/TF卡 SD/MicroSD/TF卡是基于FLASH的一种常见非易失存储单元由接口协议电路和FLASH构成。市面上由不同尺寸和不同容量的卡手机领域用的TF卡实际就是MicroSD卡尺寸比SD卡小而电路和协议操作则是一样。这里介绍STM32CUBEIDE开发平台HAL库SDIO总线操作SD/MicroSD/TF卡的例程。 SD/MicroSD/TF卡访问接口 SD/MicroSD/TF卡可以通过访问更快的SDIO专用协议接口或是访问慢一些的普通SPI接口进行操作两种协议接口复用管脚。通过SDIO访问的接口连接方式如下 其中CMD连接用于指示发送的是命令还是数据。CLK提供访问同步时钟4根数据线(DATA0 ~ DATA3 )则实现信息双向传输。 SDIO可以操作在1bit数据线和4bit数据线模式因为4bit数据线明显效率高于1bit数据线模式所以1bit数据线模式很少用只有在某种极限节省连接资源的情况下可以用1bit数据线模式在1bit模式下数据线DATA0用来传输数据DATA1用作中断。在4bit数据线模式下数据线DATA0~DATA3用于传输数据其中DATA1复用作中断线。 例程采用STM32F103VET6芯片对4GB的TF卡进行操作TF卡也可以插入转换卡套插入SD卡接口。 STM32工程配置 首先建立基本工程并设置时钟 配置SDIO接口 配置使用DMA, 优先级可以根据需要调整: 配置UART1作为控制和打印输出接口 保存并生成初始工程代码 STM32工程代码 UART串口printf打印输出实现参考STM32 UART串口printf函数应用及浮点打印代码空间节省 (HAL) 对SD/MicroSD/TF卡的SDIO接口操作可以调用HAL库函数进行代码实现在main.c文件里实现如下功能 串口收到0x01指令查询SD/MicroSD/TF卡容量等信息串口收到0x02指令执行特定区域块0的擦除串口收到0x03指令阻塞模式执行写操作串口收到0x04指令阻塞模式执行读操作串口收到0x05指令中断模式执行写操作串口收到0x06指令中断模式执行读操作串口收到0x07指令DMA模式执行写操作串口收到0x08指令DMA模式执行读操作 完整的main.c代码如下 /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program body******************************************************************************* attention** Copyright (c) 2022 STMicroelectronics.* All rights reserved.** This software is licensed under terms that can be found in the LICENSE file* in the root directory of this software component.* If no LICENSE file comes with this software, it is provided AS-IS.********************************************************************************/ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include main.h/* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include string.h #include usart.h /* USER CODE END Includes *//* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ __IO float usDelayBase; void PY_usDelayTest(void) {__IO uint32_t firstms, secondms;__IO uint32_t counter 0;firstms HAL_GetTick()1;secondms firstms1;while(uwTick!firstms) ;while(uwTick!secondms) counter;usDelayBase ((float)counter)/1000; }void PY_Delay_us_t(uint32_t Delay) {__IO uint32_t delayReg;__IO uint32_t usNum (uint32_t)(Delay*usDelayBase);delayReg 0;while(delayReg!usNum) delayReg; }void PY_usDelayOptimize(void) {__IO uint32_t firstms, secondms;__IO float coe 1.0;firstms HAL_GetTick();PY_Delay_us_t(1000000) ;secondms HAL_GetTick();coe ((float)1000)/(secondms-firstms);usDelayBase coe*usDelayBase; }void PY_Delay_us(uint32_t Delay) {__IO uint32_t delayReg;__IO uint32_t msNum Delay/1000;__IO uint32_t usNum (uint32_t)((Delay%1000)*usDelayBase);if(msNum0) HAL_Delay(msNum);delayReg 0;while(delayReg!usNum) delayReg; } /* USER CODE END PTD *//* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ //#define BLOCKSIZE 512U /*! Block size is 512 bytes */ #define BLOCK_START_ADDR 0 /* Block start address */ #define NUM_OF_BLOCKS 1 /* Total number of blocks */ #define BUFFER_WORDS_SIZE ((BLOCKSIZE * NUM_OF_BLOCKS) 2) /* Total data size in bytes *//* USER CODE END PD *//* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM */ /* USER CODE END PM *//* Private variables ---------------------------------------------------------*/ SD_HandleTypeDef hsd; DMA_HandleTypeDef hdma_sdio;UART_HandleTypeDef huart1;/* USER CODE BEGIN PV */ uint8_t uart1_rxd[256]; uint8_t uart1_txd[256]; uint8_t cmd;/* USER CODE END PV *//* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_DMA_Init(void); static void MX_SDIO_SD_Init(void); static void MX_USART1_UART_Init(void); /* USER CODE BEGIN PFP *//* USER CODE END PFP *//* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ uint8_t SD_Buffer_Tx[512] {0} ; uint8_t SD_Buffer_Rx[512] {0};uint32_t SD_Status 0; uint32_t SD_Rx_Int 0; uint32_t SD_Tx_Int 0;void SD_DMA_INIT_M2P(SD_HandleTypeDef* hsd) //DMA init: memory -- peripheral {HAL_DMA_DeInit(hdma_sdio);/* SDIO DMA Init *//* SDIO Init */hdma_sdio.Instance DMA2_Channel4;hdma_sdio.Init.Direction DMA_MEMORY_TO_PERIPH;hdma_sdio.Init.PeriphInc DMA_PINC_DISABLE;hdma_sdio.Init.MemInc DMA_MINC_ENABLE;hdma_sdio.Init.PeriphDataAlignment DMA_PDATAALIGN_WORD;hdma_sdio.Init.MemDataAlignment DMA_MDATAALIGN_WORD;hdma_sdio.Init.Mode DMA_NORMAL;hdma_sdio.Init.Priority DMA_PRIORITY_LOW;if (HAL_DMA_Init(hdma_sdio) ! HAL_OK){Error_Handler();}/* Several peripheral DMA handle pointers point to the same DMA handle.Be aware that there is only one channel to perform all the requested DMAs. *//* Be sure to change transfer direction before callingHAL_SD_ReadBlocks_DMA or HAL_SD_WriteBlocks_DMA. */__HAL_LINKDMA(hsd,hdmarx,hdma_sdio);__HAL_LINKDMA(hsd,hdmatx,hdma_sdio); }void SD_DMA_INIT_P2M(SD_HandleTypeDef* hsd) //DMA init: memory -- peripheral {HAL_DMA_DeInit(hdma_sdio);/* SDIO DMA Init *//* SDIO Init */hdma_sdio.Instance DMA2_Channel4;hdma_sdio.Init.Direction DMA_PERIPH_TO_MEMORY;hdma_sdio.Init.PeriphInc DMA_PINC_DISABLE;hdma_sdio.Init.MemInc DMA_MINC_ENABLE;hdma_sdio.Init.PeriphDataAlignment DMA_PDATAALIGN_WORD;hdma_sdio.Init.MemDataAlignment DMA_MDATAALIGN_WORD;hdma_sdio.Init.Mode DMA_NORMAL;hdma_sdio.Init.Priority DMA_PRIORITY_LOW;if (HAL_DMA_Init(hdma_sdio) ! HAL_OK){Error_Handler();}/* Several peripheral DMA handle pointers point to the same DMA handle.Be aware that there is only one channel to perform all the requested DMAs. *//* Be sure to change transfer direction before callingHAL_SD_ReadBlocks_DMA or HAL_SD_WriteBlocks_DMA. */__HAL_LINKDMA(hsd,hdmarx,hdma_sdio);__HAL_LINKDMA(hsd,hdmatx,hdma_sdio); } /* USER CODE END 0 *//*** brief The application entry point.* retval int*/ 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_DMA_Init();MX_SDIO_SD_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 */PY_usDelayTest();PY_usDelayOptimize();HAL_UART_Receive_IT(huart1, uart1_rxd, 1);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/*HAL_SD_CARD_TRANSFER is the operate correct and complete status for SD card operation*/if(cmd0x01) //Get SD card information{cmd 0;printf(\r\n SD card test...\r\n);if(HAL_SD_GetCardState(hsd) HAL_SD_CARD_TRANSFER) //Get SD card resource info{printf(\r\n Initialize SD card successful!\r\n);printf( SD card information↓ \r\n);printf( Card Capacity : %llu \r\n, (unsigned long long)hsd.SdCard.BlockSize * hsd.SdCard.BlockNbr);printf( One block size in bytes : %d \r\n, (int)hsd.SdCard.BlockSize);printf( Logical Capacity in blocks : %d \r\n, (int)hsd.SdCard.LogBlockNbr);printf( Logical block size in bytes : %d \r\n, (int)hsd.SdCard.LogBlockSize);printf( Relative Card Address : %d \r\n, (int)hsd.SdCard.RelCardAdd);printf( Card Type : %d \r\n, (int)hsd.SdCard.CardType);HAL_SD_CardCIDTypeDef sdcard_cid;HAL_SD_GetCardCID(hsd,sdcard_cid); //Get SD card vendor infoprintf( Manufacturer ID: %d \r\n, (int)sdcard_cid.ManufacturerID);}else{printf(\r\n SD card initiation failed!\r\n );}}else if(cmd0x02) //Erase SD card block{cmd 0;printf(\r\n------------------- Block Erase -------------------------------\r\n);if(HAL_SD_Erase(hsd, BLOCK_START_ADDR, NUM_OF_BLOCKS) HAL_OK) //Erase block operation{while(HAL_SD_GetCardState(hsd) ! HAL_SD_CARD_TRANSFER) PY_Delay_us_t(10);printf(\r\n Erase Block Successful!\r\n);}else{printf(\r\n Erase Block Failed!\r\n);}}else if(cmd0x03) //SD card write in block mode{cmd 0;memset(SD_Buffer_Tx, 0xAA, sizeof(SD_Buffer_Tx)); //0xAA written into buffer for this testprintf(\r\n------------------- Write SD card block data in block mode ------------------\r\n);__disable_irq();SD_Status HAL_SD_WriteBlocks(hsd, SD_Buffer_Tx, BLOCK_START_ADDR, NUM_OF_BLOCKS, 0xFFFFFFFF); //Write block operation in block modeif(SD_StatusHAL_OK){while(HAL_SD_GetCardState(hsd) ! HAL_SD_CARD_TRANSFER) PY_Delay_us_t(10); //Wait for write endprintf(\r\n Write block data in block mode successful!\r\n);}else{printf(\r\n Write block data in block mode failed!\r\n);}__enable_irq();}else if(cmd0x04) //SD card read in block mode{cmd 0;printf(\r\n------------------- Read SD card block data in block mode ------------------\r\n);__disable_irq();SD_Status HAL_SD_ReadBlocks(hsd, SD_Buffer_Rx, BLOCK_START_ADDR, NUM_OF_BLOCKS, 0xFFFFFFFF); //read block operation in block modeif( SD_Status HAL_OK){while(HAL_SD_GetCardState(hsd) ! HAL_SD_CARD_TRANSFER) PY_Delay_us_t(10); //Wait for read endprintf(\r\n Read block data in block mode successful!\r\n);for(uint32_t i 0; i sizeof(SD_Buffer_Rx); i){printf(0x%02x:%02x , (unsigned int)i, (unsigned int)SD_Buffer_Rx[i]);}printf(\r\n);}else{printf(\r\n Read block data in block mode failed!\r\n);}__enable_irq();}else if(cmd0x05) //SD card write in INT mode{cmd 0;memset(SD_Buffer_Tx, 0x55, sizeof(SD_Buffer_Tx)); //0x55 written into buffer for this testprintf(\r\n------------------- Write SD card block data in INT mode ------------------\r\n);SD_Tx_Int 1;SD_Status HAL_SD_WriteBlocks_IT(hsd, SD_Buffer_Tx, BLOCK_START_ADDR, NUM_OF_BLOCKS); //write block operation in INT modeif(SD_Status HAL_OK){while(SD_Tx_Int1) PY_Delay_us_t(1); //Wait for write endprintf(\r\n Write block data in INT mode successful!\r\n);}else{printf(\r\n Write block data in INT mode failed!\r\n);}}else if(cmd0x06) //SD card read in INT mode{cmd 0;printf(\r\n------------------- Read SD card block data in INT mode ------------------\r\n);SD_Rx_Int 1;SD_Status HAL_SD_ReadBlocks_IT(hsd, SD_Buffer_Rx, BLOCK_START_ADDR, NUM_OF_BLOCKS); //read block operation in INT modeif( SD_Status HAL_OK){while(SD_Rx_Int1) PY_Delay_us_t(1); //Wait for read endprintf(\r\n Read block data in INT mode successful!\r\n);for(uint32_t i 0; i sizeof(SD_Buffer_Rx); i){printf(0x%02x:%02x , (unsigned int)i, (unsigned int)SD_Buffer_Rx[i]);}printf(\r\n);}else{printf(\r\n Read block data in INT mode failed!\r\n);}}else if(cmd0x07) //SD card write in DMA mode{cmd 0;SD_DMA_INIT_M2P(hsd); //Switch DMA mode directionmemset(SD_Buffer_Tx, 0x5A, sizeof(SD_Buffer_Tx)); //0x5A written into buffer for this testprintf(\r\n------------------- Write SD card block data in DMA mode ------------------\r\n);SD_Tx_Int 1;SD_Status HAL_SD_WriteBlocks_DMA(hsd, SD_Buffer_Tx, BLOCK_START_ADDR, NUM_OF_BLOCKS); //write block operation in DMA modeif(SD_Status HAL_OK){while(SD_Tx_Int1) PY_Delay_us_t(1); //Wait for write endprintf(\r\n Write block data in DMA mode successful!\r\n);}else{printf(\r\n Write block data in DMA mode failed!\r\n);}}else if(cmd0x08) //SD card read in DMA mode{cmd 0;SD_DMA_INIT_P2M(hsd); //Switch DMA mode directionprintf(\r\n------------------- Read SD card block data in DMA mode ------------------\r\n);SD_Rx_Int 1;SD_Status HAL_SD_ReadBlocks_DMA(hsd, SD_Buffer_Rx, BLOCK_START_ADDR, NUM_OF_BLOCKS); //read block operation in DMA modeif( SD_Status HAL_OK){while(SD_Rx_Int1) PY_Delay_us_t(1); //Wait for read endprintf(\r\n Read block data in DMA mode successful!\r\n);for(uint32_t i 0; i sizeof(SD_Buffer_Rx); i){printf(0x%02x:%02x , (unsigned int)i, (unsigned int)SD_Buffer_Rx[i]);}printf(\r\n);}else{printf(\r\n Read block data in DMA mode failed!\r\n);}}else;/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */ }/*** brief System Clock Configuration* retval None*/ void SystemClock_Config(void) {RCC_OscInitTypeDef RCC_OscInitStruct {0};RCC_ClkInitTypeDef RCC_ClkInitStruct {0};/** Initializes the RCC Oscillators according to the specified parameters* in the RCC_OscInitTypeDef structure.*/RCC_OscInitStruct.OscillatorType RCC_OSCILLATORTYPE_HSE;RCC_OscInitStruct.HSEState RCC_HSE_ON;RCC_OscInitStruct.HSEPredivValue RCC_HSE_PREDIV_DIV1;RCC_OscInitStruct.HSIState RCC_HSI_ON;RCC_OscInitStruct.PLL.PLLState RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource RCC_PLLSOURCE_HSE;RCC_OscInitStruct.PLL.PLLMUL RCC_PLL_MUL9;if (HAL_RCC_OscConfig(RCC_OscInitStruct) ! HAL_OK){Error_Handler();}/** Initializes the CPU, AHB and APB buses clocks*/RCC_ClkInitStruct.ClockType RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider RCC_HCLK_DIV2;RCC_ClkInitStruct.APB2CLKDivider RCC_HCLK_DIV1;if (HAL_RCC_ClockConfig(RCC_ClkInitStruct, FLASH_LATENCY_2) ! HAL_OK){Error_Handler();} }/*** brief SDIO Initialization Function* param None* retval None*/ static void MX_SDIO_SD_Init(void) {/* USER CODE BEGIN SDIO_Init 0 *//* USER CODE END SDIO_Init 0 *//* USER CODE BEGIN SDIO_Init 1 *//* USER CODE END SDIO_Init 1 */hsd.Instance SDIO;hsd.Init.ClockEdge SDIO_CLOCK_EDGE_RISING;hsd.Init.ClockBypass SDIO_CLOCK_BYPASS_DISABLE;hsd.Init.ClockPowerSave SDIO_CLOCK_POWER_SAVE_DISABLE;hsd.Init.BusWide SDIO_BUS_WIDE_1B;hsd.Init.HardwareFlowControl SDIO_HARDWARE_FLOW_CONTROL_ENABLE;hsd.Init.ClockDiv 6;if (HAL_SD_Init(hsd) ! HAL_OK){Error_Handler();}if (HAL_SD_ConfigWideBusOperation(hsd, SDIO_BUS_WIDE_4B) ! HAL_OK){Error_Handler();}/* USER CODE BEGIN SDIO_Init 2 *//* USER CODE END SDIO_Init 2 */}/*** brief USART1 Initialization Function* param None* retval None*/ static void MX_USART1_UART_Init(void) {/* USER CODE BEGIN USART1_Init 0 *//* USER CODE END USART1_Init 0 *//* USER CODE BEGIN USART1_Init 1 *//* USER CODE END USART1_Init 1 */huart1.Instance USART1;huart1.Init.BaudRate 115200;huart1.Init.WordLength UART_WORDLENGTH_8B;huart1.Init.StopBits UART_STOPBITS_1;huart1.Init.Parity UART_PARITY_NONE;huart1.Init.Mode UART_MODE_TX_RX;huart1.Init.HwFlowCtl UART_HWCONTROL_NONE;huart1.Init.OverSampling UART_OVERSAMPLING_16;if (HAL_UART_Init(huart1) ! HAL_OK){Error_Handler();}/* USER CODE BEGIN USART1_Init 2 *//* USER CODE END USART1_Init 2 */}/*** Enable DMA controller clock*/ static void MX_DMA_Init(void) {/* DMA controller clock enable */__HAL_RCC_DMA2_CLK_ENABLE();/* DMA interrupt init *//* DMA2_Channel4_5_IRQn interrupt configuration */HAL_NVIC_SetPriority(DMA2_Channel4_5_IRQn, 0, 0);HAL_NVIC_EnableIRQ(DMA2_Channel4_5_IRQn);}/*** brief GPIO Initialization Function* param None* retval None*/ static void MX_GPIO_Init(void) {/* GPIO Ports Clock Enable */__HAL_RCC_GPIOC_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE();__HAL_RCC_GPIOD_CLK_ENABLE();}/* USER CODE BEGIN 4 */ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {if(huarthuart1){cmd uart1_rxd[0];HAL_UART_Receive_IT(huart1, uart1_rxd, 1);} }void HAL_SD_TxCpltCallback(SD_HandleTypeDef *hsd) {SD_Tx_Int 0; }void HAL_SD_RxCpltCallback(SD_HandleTypeDef *hsd) {SD_Rx_Int 0; } /* USER CODE END 4 *//*** brief This function is executed in case of error occurrence.* retval None*/ void Error_Handler(void) {/* USER CODE BEGIN Error_Handler_Debug *//* User can add his own implementation to report the HAL error return state */__disable_irq();while (1){}/* USER CODE END Error_Handler_Debug */ }#ifdef USE_FULL_ASSERT /*** brief Reports the name of the source file and the source line number* where the assert_param error has occurred.* param file: pointer to the source file name* param line: assert_param error line source number* retval None*/ void assert_failed(uint8_t *file, uint32_t line) {/* USER CODE BEGIN 6 *//* User can add his own implementation to report the file name and line number,ex: printf(Wrong parameters value: file %s on line %d\r\n, file, line) *//* USER CODE END 6 */ } #endif /* USE_FULL_ASSERT */ STM32例程测试 串口指令0x01测试效果如下 串口指令0x02测试效果如下 串口指令0x03测试效果如下 串口指令0x04测试效果如下 串口指令0x05测试效果如下 串口指令0x06测试效果如下 串口指令0x07测试效果如下 串口指令0x08测试效果如下 STM32例程下载 STM32F103VET6 SDIO总线读写SD/MicroSD/TF卡例程下载 –End–
文章转载自:
http://www.morning.srnth.cn.gov.cn.srnth.cn
http://www.morning.wgtnz.cn.gov.cn.wgtnz.cn
http://www.morning.wbnsf.cn.gov.cn.wbnsf.cn
http://www.morning.nqgjn.cn.gov.cn.nqgjn.cn
http://www.morning.plpqf.cn.gov.cn.plpqf.cn
http://www.morning.pccqr.cn.gov.cn.pccqr.cn
http://www.morning.kkjhj.cn.gov.cn.kkjhj.cn
http://www.morning.drggr.cn.gov.cn.drggr.cn
http://www.morning.gmgyt.cn.gov.cn.gmgyt.cn
http://www.morning.jfsbs.cn.gov.cn.jfsbs.cn
http://www.morning.dbphz.cn.gov.cn.dbphz.cn
http://www.morning.qbksx.cn.gov.cn.qbksx.cn
http://www.morning.hbfqm.cn.gov.cn.hbfqm.cn
http://www.morning.qttft.cn.gov.cn.qttft.cn
http://www.morning.gynlc.cn.gov.cn.gynlc.cn
http://www.morning.ydnxm.cn.gov.cn.ydnxm.cn
http://www.morning.jhfkr.cn.gov.cn.jhfkr.cn
http://www.morning.wncb.cn.gov.cn.wncb.cn
http://www.morning.fbdtd.cn.gov.cn.fbdtd.cn
http://www.morning.cbmqq.cn.gov.cn.cbmqq.cn
http://www.morning.bbrf.cn.gov.cn.bbrf.cn
http://www.morning.lsqxh.cn.gov.cn.lsqxh.cn
http://www.morning.gxfpk.cn.gov.cn.gxfpk.cn
http://www.morning.djpgc.cn.gov.cn.djpgc.cn
http://www.morning.cwznh.cn.gov.cn.cwznh.cn
http://www.morning.lwmzp.cn.gov.cn.lwmzp.cn
http://www.morning.xpzgg.cn.gov.cn.xpzgg.cn
http://www.morning.cknrs.cn.gov.cn.cknrs.cn
http://www.morning.hkchp.cn.gov.cn.hkchp.cn
http://www.morning.wslpk.cn.gov.cn.wslpk.cn
http://www.morning.nkqxb.cn.gov.cn.nkqxb.cn
http://www.morning.pxwjp.cn.gov.cn.pxwjp.cn
http://www.morning.yxnfd.cn.gov.cn.yxnfd.cn
http://www.morning.mjmtm.cn.gov.cn.mjmtm.cn
http://www.morning.fplwz.cn.gov.cn.fplwz.cn
http://www.morning.pqnps.cn.gov.cn.pqnps.cn
http://www.morning.tfbpz.cn.gov.cn.tfbpz.cn
http://www.morning.smsjx.cn.gov.cn.smsjx.cn
http://www.morning.qlckc.cn.gov.cn.qlckc.cn
http://www.morning.xnzmc.cn.gov.cn.xnzmc.cn
http://www.morning.kldtf.cn.gov.cn.kldtf.cn
http://www.morning.hxpsp.cn.gov.cn.hxpsp.cn
http://www.morning.mjytr.cn.gov.cn.mjytr.cn
http://www.morning.mxnfh.cn.gov.cn.mxnfh.cn
http://www.morning.wwznd.cn.gov.cn.wwznd.cn
http://www.morning.pbtrx.cn.gov.cn.pbtrx.cn
http://www.morning.syrzl.cn.gov.cn.syrzl.cn
http://www.morning.kycxb.cn.gov.cn.kycxb.cn
http://www.morning.ttxnj.cn.gov.cn.ttxnj.cn
http://www.morning.jrqw.cn.gov.cn.jrqw.cn
http://www.morning.thbkc.cn.gov.cn.thbkc.cn
http://www.morning.jsdntd.com.gov.cn.jsdntd.com
http://www.morning.ymqfx.cn.gov.cn.ymqfx.cn
http://www.morning.dpsgq.cn.gov.cn.dpsgq.cn
http://www.morning.qpsdq.cn.gov.cn.qpsdq.cn
http://www.morning.xwbld.cn.gov.cn.xwbld.cn
http://www.morning.cfccp.cn.gov.cn.cfccp.cn
http://www.morning.lmdkn.cn.gov.cn.lmdkn.cn
http://www.morning.rhfh.cn.gov.cn.rhfh.cn
http://www.morning.lhhdy.cn.gov.cn.lhhdy.cn
http://www.morning.kysport1102.cn.gov.cn.kysport1102.cn
http://www.morning.rnht.cn.gov.cn.rnht.cn
http://www.morning.shuangxizhongxin.cn.gov.cn.shuangxizhongxin.cn
http://www.morning.sfswj.cn.gov.cn.sfswj.cn
http://www.morning.pphgl.cn.gov.cn.pphgl.cn
http://www.morning.ckzjl.cn.gov.cn.ckzjl.cn
http://www.morning.bkylg.cn.gov.cn.bkylg.cn
http://www.morning.rpstb.cn.gov.cn.rpstb.cn
http://www.morning.zlrsy.cn.gov.cn.zlrsy.cn
http://www.morning.jngdh.cn.gov.cn.jngdh.cn
http://www.morning.rfzbm.cn.gov.cn.rfzbm.cn
http://www.morning.pndhh.cn.gov.cn.pndhh.cn
http://www.morning.dnmgr.cn.gov.cn.dnmgr.cn
http://www.morning.yrlfy.cn.gov.cn.yrlfy.cn
http://www.morning.mlfgx.cn.gov.cn.mlfgx.cn
http://www.morning.bnjnp.cn.gov.cn.bnjnp.cn
http://www.morning.pbsfq.cn.gov.cn.pbsfq.cn
http://www.morning.lzph.cn.gov.cn.lzph.cn
http://www.morning.mlffg.cn.gov.cn.mlffg.cn
http://www.morning.irqlul.cn.gov.cn.irqlul.cn
http://www.tj-hxxt.cn/news/276911.html

相关文章:

  • wordpress 文章分类id西安seo关键词推广
  • 海东企业网站建设哪里有帮做微课的网站
  • 京东网站建设步骤网页加速器手机版哪个好
  • 做网站赚钱 2017郑州网站建设蝶动科技
  • 莱西做网站公司企业公示信息查询系统全国官网
  • 湖北企业建站系统平台如何注册个做电影的网站
  • 网站开发国内外研究现状为什么网站打开是空白
  • 前端电商网站登录界面怎么做网站keywords重复解决方法
  • 中国建设银行官方网站e路航下载微动漫怎么制作
  • 如何让自己做的网站在google搜索引擎上搜到安徽安庆天气预报
  • 闲鱼网站如何赚钱自己搭建vps上外网
  • 网站服务器租用多少钱才合理呢wordpress 如何发布文章
  • 深圳品牌网站设计专家电子商城网站的设计与实现
  • 有做soho网站的吗长沙专业网站建设团队
  • 建电商网站要多少钱寿光建设集团网站
  • 旅游网站建设的原因wordpress app接口
  • 自己做网站给自己淘宝引流手机端企业网站设计
  • 东莞网站建设-搜盟网做视频网站容易收录吗
  • 网站排名优化价格手机好在百度做网站吗
  • 如何在建设厅网站搜索企业网站建设军成
  • 大学社团网站建设贴吧网站开发需求分析
  • wordpress基本功能淘宝关键词优化工具
  • 网站 团队wordpress 软件公司
  • 齐诺网站建设东莞网站建设做网站网站建设的费用记什么科目
  • 河北seo网站优化电话正能量网站不用下载直接进入
  • 网站开发教程 布局哪个公司做网站好
  • 迈肯奇迹做网站做pc端网站案例
  • 详情页制作网站网站管理后台源码
  • 国外 网站页面设计wordpress自动刷新2次
  • 黑龙江网站设计杭州做公司官网的公司