• 女性之声——全国妇联 2019-03-19
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-03-11
  • 全国小麦收获进度过八成 2019-03-07
  • 【人事】中共临汾市委组织部公示3名拟任职干部 2019-03-07
  • 这泼猴,物理。古文,哲学,基础语文,那一项没出丑?看着就想笑 2019-02-20
  • 云南理发店老板涉嫌杀害女演员因办卡纠纷起杀心 2019-02-20
  • 1至5月我区为企业和社会减负4200余万元 2019-02-09
  • 【学习时刻】参会专家盛小云:坚定文化自信,用高尚的作品引领社会风尚 2019-01-28
  • 绘就生态文明新画卷—甘南州造林绿化工作纪实 2019-01-28
  • 某些人总是用“客观事实”来为自己壮胆,实际上根本不懂什么是“客观事实。 2019-01-12
  • 圣洁的雪山文章中国国家地理网 2018-11-22
  • 崇尚英雄 精忠报国——我们家的报国故事 2018-11-22
  • 618史上最壕“买家”现身 Google以 5.5亿美元投资京东 2018-11-21
  • 看好啦!是时候表演真正的技术了 2018-11-21
  • 日本大阪6.1级地震已致4人死亡 370多人受伤 2018-11-20
  • 打印

    广东体彩11选5快乐十分: [范例教程] 【M0】 MG32F02A 学习笔记? PWM触发ADC

    [复制链接]
    397|1
    跳转到指定楼层
    楼主
     楼主 | 2018-10-23 09:45 | 只看该作者 |退出气泡模式 回帖奖励 |倒序浏览 |阅读模式
         上回我们说到了MG32F02A的BOD唤醒的使用。帖子详情://www.h77b.com/icview-2571922-1-1.html

          想了一下,我已经讲过了PWM,ADC,那么,那我可以尝试一下PWM触发ADC采样呀,好像这东西可以用来驱动直流无刷电机,虽然具体怎么驱动我也不是很了解。
          代码比较长,我放在二楼
    沙发
     楼主 | 2018-10-23 09:45 | 只看该作者



    1. #include "MG32x02z_DRV.H"
    2. #include <stdio.h>

    3. typedef uint8_t u8;
    4. typedef uint16_t u16;
    5. typedef uint32_t u32;
    6. typedef uint64_t u64;

    7. #define TM36_PrescalerCounter_Range 120
    8. #define TM36_MainCounter_Range      1000
    9. #define URTX URT0

    10. uint8_t RcvBuf[20] __attribute__((at(0x20003800)));


    11. //if user wants to delay 1ms and CK_TM00_PR is 12MHz.
    12. //The Total clocks is 12M*1ms = 12000.
    13. //User can set "clock prescaler"=100 and "pulse width"=120 .   


    14. void Sample_TM36_PWM(void)
    15. {  
    16.     TM_TimeBaseInitTypeDef TM_TimeBase_InitStruct;
    17.    
    18.                 //        The period = (prescaler*main counter)/12MHz (CK_TM36_PR=12MHz) (s)
    19.     //  User can update duty cycle by replace CCxB register.
    20.          
    21.     TM_DeInit(TM36);
    22.    
    23.     // ----------------------------------------------------
    24.     // 1.TimeBase structure initial
    25.     TM_TimeBaseStruct_Init(&TM_TimeBase_InitStruct);
    26.    
    27.     // modify parameter
    28.     TM_TimeBase_InitStruct.TM_MainClockDirection =TM_UpCount;
    29.     TM_TimeBase_InitStruct.TM_Period = TM36_MainCounter_Range-1;
    30.     TM_TimeBase_InitStruct.TM_Prescaler = TM36_PrescalerCounter_Range-1;
    31.     TM_TimeBase_InitStruct.TM_CounterMode =Cascade;
    32.    
    33.     TM_TimeBase_Init(TM36, &TM_TimeBase_InitStruct);
    34.    
    35.     // ----------------------------------------------------
    36.     // 2.config TM36 channel 1 function
    37.     TM_CH1Function_Config(TM36, TM_16bitPWM);

    38.    
    39.     // ----------------------------------------------------
    40.     // 3.Enable TM36 channel 1 Output (just output TM36_OC10)
    41.     TM_OC10Output_Cmd(TM36,ENABLE);   
    42.     TM_InverseOC1z_Cmd(TM36, DISABLE);
    43.     TM_OC1zOutputState_Init(TM36, CLR);
    44.    
    45.                 TM_OC1NOutput_Cmd(TM36, ENABLE);
    46.     TM_InverseOC1N_Cmd(TM36, DISABLE);
    47.                
    48.     // ----------------------------------------------------
    49.                 // 4.set trigger output source
    50.                 TM_TRGO_Select(TM36, TRGO_OS1);
    51.                
    52.     // ----------------------------------------------------
    53.     // 5.set match point (Duty cycle %) for PWM channel0.Less value of CCnA/CCnB,more lighten (1~65536)
    54.                
    55.     TM_SetCC1A(TM36,500);        
    56.     TM_SetCC1B(TM36,500);                // reload value when overflow

    57.     // ----------------------------------------------------
    58.     // 6.select Edge Align
    59.     TM_AlignmentMode_Select(TM36, TM_CenterAlign);
    60.    
    61.     // ----------------------------------------------------
    62.     // 7.clear flag
    63.     TM_ClearFlag(TM36, TMx_CF0A | TMx_CF1A | TMx_CF2A);
    64.    
    65.     // ----------------------------------------------------
    66.     // 8.Timer enable
    67.     TM_Timer_Cmd(TM36,ENABLE);
    68. }

    69. void Sample_URT0_Init(void)
    70. {
    71.     URT_BRG_TypeDef  URT_BRG;
    72.     URT_Data_TypeDef DataDef;
    73.             PIN_InitTypeDef PINX_InitStruct;
    74.     //==Set CSC init
    75.     //MG32x02z_CSC_Init.h(Configuration Wizard)
    76.     //Select CK_HS source = CK_IHRCO
    77.     //Select IHRCO = 11.0592M
    78.     //Select CK_MAIN Source = CK_HS
    79.     //Configure PLL->Select APB Prescaler = CK_MAIN/1
    80.     //Configure Peripheral On Mode Clock->Port B/URT0 = Enable
    81.     //Configure Peripheral On Mode Clock->URT0->Select URT0_PR Source = CK_APB(11.0592)
    82.    
    83.     //==Set GPIO init
    84.     //MG32x02z_GPIO_Init.h(Configuration Wizard)->Use GPIOB->Pin8/9
    85.     //GPIO port initial is 0xFFFF
    86.     //Pin8 mode is PPO/Pin9 mode is ODO
    87.     //Pin8/9 pull-up resister Enable
    88.     //Pin8/9 function URT0_TX/RX
    89.   PINX_InitStruct.PINX_Mode                                 = PINX_Mode_PushPull_O;                  // Pin select Push Pull mode
    90.         PINX_InitStruct.PINX_PUResistant                 = PINX_PUResistant_Enable;          // Enable pull up resistor
    91.         PINX_InitStruct.PINX_Speed                                   = PINX_Speed_Low;                         
    92.         PINX_InitStruct.PINX_OUTDrive                         = PINX_OUTDrive_Level0;                 // Pin output driver full strength.
    93.         PINX_InitStruct.PINX_FilterDivider                   = PINX_FilterDivider_Bypass;        // Pin input deglitch filter clock divider bypass
    94.         PINX_InitStruct.PINX_Inverse                         = PINX_Inverse_Disable;                 // Pin input data not inverse
    95.         PINX_InitStruct.PINX_Alternate_Function  = 3;                                // Pin AFS = URT0_TX
    96.         GPIO_PinMode_Config(PINB(8),&PINX_InitStruct);                                                          // TXD at PB8

    97.         PINX_InitStruct.PINX_Mode                                 = PINX_Mode_OpenDrain_O;                 // Pin select Open Drain mode
    98.         PINX_InitStruct.PINX_Alternate_Function  = 3;                                // Pin AFS = URT0_RX
    99.         GPIO_PinMode_Config(PINB(9),&PINX_InitStruct);                                                          // RXD at PB9  
    100.        
    101.        
    102.    
    103.     //=====Set Clock=====//
    104.     //---Set BaudRate---//
    105.     URT_BRG.URT_InteranlClockSource = URT_BDClock_PROC;
    106.     URT_BRG.URT_BaudRateMode = URT_BDMode_Separated;
    107.     URT_BRG.URT_PrescalerCounterReload = 0;                        //Set PSR
    108.     URT_BRG.URT_BaudRateCounterReload = 3;                        //Set RLR
    109.     URT_BaudRateGenerator_Config(URTX, &URT_BRG);                    //BR115200 = f(CK_URTx)/(PSR+1)/(RLR+1)/(OS_NUM+1)
    110.     URT_BaudRateGenerator_Cmd(URTX, ENABLE);                    //Enable BaudRateGenerator
    111.     //---TX/RX Clock---//
    112.     URT_TXClockSource_Select(URTX, URT_TXClock_Internal);        //URT_TX use BaudRateGenerator
    113.     URT_RXClockSource_Select(URTX, URT_RXClock_Internal);        //URT_RX use BaudRateGenerator
    114.     URT_TXOverSamplingSampleNumber_Select(URTX, 25);                //Set TX OS_NUM
    115.     URT_RXOverSamplingSampleNumber_Select(URTX, 25);                //Set RX OS_NUM
    116.     URT_RXOverSamplingMode_Select(URTX, URT_RXSMP_3TIME);
    117.     URT_TX_Cmd(URTX, ENABLE);                                    //Enable TX
    118.     URT_RX_Cmd(URTX, ENABLE);                                    //Enable RX
    119.    
    120.    

    121.     //=====Set Mode=====//
    122.     //---Set Data character config---//
    123.     DataDef.URT_TX_DataLength  = URT_DataLength_8;
    124.     DataDef.URT_RX_DataLength  = URT_DataLength_8;
    125.     DataDef.URT_TX_DataOrder   = URT_DataTyped_LSB;
    126.     DataDef.URT_RX_DataOrder   = URT_DataTyped_LSB;
    127.     DataDef.URT_TX_Parity      = URT_Parity_No;
    128.     DataDef.URT_RX_Parity      = URT_Parity_No;
    129.     DataDef.URT_TX_StopBits    = URT_StopBits_1_0;
    130.     DataDef.URT_RX_StopBits    = URT_StopBits_1_0;
    131.     DataDef.URT_RX_DataInverse = DISABLE;
    132.     DataDef.URT_RX_DataInverse = DISABLE;
    133.     URT_DataCharacter_Config(URTX, &DataDef);
    134.     //---Set Mode Select---//
    135.     URT_Mode_Select(URTX, URT_URT_mode);
    136.     //---Set DataLine Select---//
    137.     URT_DataLine_Select(URTX, URT_DataLine_2);
    138.    
    139.     //=====Set Error Control=====//
    140.     // to do...
    141.    
    142.     //=====Set Bus Status Detect Control=====//
    143.     // to do...
    144.    
    145.     //=====Set Data Control=====//
    146.     URT_RXShadowBufferThreshold_Select(URTX, URT_RXTH_1BYTE);
    147.     URT_IdlehandleMode_Select(URTX, URT_IDLEMode_No);
    148.     URT_TXGaudTime_Select(URTX, 0);
    149.    
    150.     //=====Enable URT Interrupt=====//
    151. //   URT_IT_Cmd(URTX, URT_IT_RX, ENABLE);
    152.   //  URT_ITEA_Cmd(URTX, ENABLE);
    153.   //  NVIC_EnableIRQ(URT0_IRQn);
    154.                
    155.     //=====Enable URT=====//
    156.     URT_Cmd(URTX, ENABLE);
    157.                
    158.         //==See MG32x02z_URT0_IRQ.c when interrupt in
    159. }

    160. int fputc(int ch,FILE *f)
    161. {
    162.        
    163.         URT_SetTXData(URTX,1,ch);
    164.         while(URT_GetITSingleFlagStatus(URTX,URT_IT_TC)==DRV_UnHappened);
    165.         URT_ClearITFlag(URTX,URT_IT_TC);
    166.        
    167.         return ch;
    168. }

    169. void UartSendByte(int ch)
    170. {
    171.        
    172.         URT_SetTXData(URTX,1,ch);
    173.         while(URT_GetITSingleFlagStatus(URTX,URT_IT_TC)==DRV_UnHappened);
    174.         URT_ClearITFlag(URTX,URT_IT_TC);
    175.        
    176. }

    177. void ADC_Init(void)
    178. {
    179.         ADC_InitTypeDef ADC_Base;
    180.    
    181.    
    182.     // make sure :
    183.        
    184.     //===Set CSC init====
    185.     //MG32x02z_CSC_Init.h(Configuration Wizard)
    186.     //Select CK_HS source = CK_IHRCO
    187.     //Select IHRCO = 12M
    188.     //Select CK_MAIN Source = CK_HS
    189.     //Configure PLL->Select APB Prescaler = CK_MAIN/1
    190.     //Configure Peripheral On Mode Clock->ADC = Enable
    191.     //Configure Peripheral On Mode Clock->Port A = Enable
    192.        
    193.     //==Set GPIO init
    194.     //MG32x02z_GPIO_Init.h(Configuration Wizard)->Use GPIOA->Pin4
    195.     //GPIO port initial is 0xFFFF
    196.     //Pin4 mode is AIO
    197.     //Pin4 function GPA4

    198.     ADC_DeInit(ADC0);
    199.     // ------------------------------------------------------------------------
    200.     // 1.Config ADC base parameter   
    201.     ADC_BaseStructure_Init(&ADC_Base);
    202.        // modify parameter
    203.     ADC_Base.ADCMainClockSelect = ADC_CKADC;
    204.     ADC_Base.ADC_IntCK_Div = ADC_IntDIV16;   // for internal clock divider
    205.    
    206.         // ADC data alignment mode (Right or Left)
    207.     ADC_Base.ADC_DataAlign = ADC_RightJustified;
    208.         
    209.         // ADC conversion resolution 8, 10 or 12 bit
    210.     ADC_Base.ADC_ResolutionSel = ADC_12BitData;
    211.         
    212.         // ADC overwritten data or keep data
    213.     ADC_Base.ADC_DataOverrunEvent = ADC_DataOverWritten;
    214.         
    215.    
    216.     ADC_Base_Init(ADC0, &ADC_Base);
    217.    
    218.     // ------------------------------------------------------------------------
    219.         // 2.Enable ADC
    220.     ADC_Cmd(ADC0, ENABLE);
    221.    
    222.     // ------------------------------------------------------------------------
    223.     // 3.Config ADC Mode
    224.     ADC_ConversionMode_Select(ADC0, ADCMode);   // one-shot
    225.     ADC_PGA_Cmd(ADC0, DISABLE);                 // Disable PGA
    226.     ADC_SingleDifferentMode_Select(ADC0, ADC_SingleMode);  // Single Mode  
    227.    
    228.     // ------------------------------------------------------------------------
    229.     // 4.Clear all flag
    230.     ADC_ClearFlag(ADC0, 0xFFFFFFFF);

    231.     // ------------------------------------------------------------------------
    232.     // 5.Start Calibration
    233.    
    234.                 ADC_StartCalibration(ADC0, ENABLE);
    235.                 // 6.Select Exnternal Channel (PA4)
    236.     ADC_ExternalChannel_Select(ADC0, ADC_ExtAIN4);
    237.         //        ADC_InternalChannel_Select(ADC0, ADC_INT_IVREF);
    238.         //        ADC_ExternalChannel_Select(ADC0, ADC_ExtAIN4);

    239.     // ------------------------------------------------------------------------
    240.         // 7.Trigger Source select and Start conversion
    241.     ADC_TriggerSource_Select(ADC0, ADC_TM36_TRGO);
    242.                 ADC_TriggerEdge_Select(ADC0, ADC_AcceptFallingEdge);
    243.                
    244.                
    245. }

    246. void CSC_Init (void)
    247. {
    248.         CSC_PLL_TyprDef CSC_PLL_CFG;
    249.        
    250.   UnProtectModuleReg(MEMprotect);             // Setting flash wait state
    251.   MEM_SetFlashWaitState(MEM_FWAIT_ONE);        // 50MHz> Sysclk >=25MHz
    252.   ProtectModuleReg(MEMprotect);

    253.   UnProtectModuleReg(CSCprotect);
    254.         CSC_CK_APB_Divider_Select(APB_DIV_1);        // Modify CK_APB divider        APB=CK_MAIN/1
    255.         CSC_CK_AHB_Divider_Select(AHB_DIV_1);        // Modify CK_AHB divider        AHB=APB/1

    256.        
    257.         /* CK_HS selection */
    258.         CSC_IHRCO_Select(IHRCO_12MHz);                        // IHRCO Sel 12MHz
    259.         CSC_IHRCO_Cmd(ENABLE);
    260.         while(CSC_GetSingleFlagStatus(CSC_IHRCOF) == DRV_Normal);
    261.         CSC_ClearFlag(CSC_IHRCOF);
    262.         CSC_CK_HS_Select(HS_CK_IHRCO);                        // CK_HS select IHRCO
    263.        
    264.         /* PLL */
    265.         /**********************************************************/
    266.         CSC_PLL_CFG.InputDivider=PLLI_DIV_2;        // 12M/2=6M
    267.         CSC_PLL_CFG.Multiplication=PLLIx16;                // 6M*16=96M
    268.         CSC_PLL_CFG.OutputDivider=PLLO_DIV_2;        // PLLO=96M/2=48M
    269.         CSC_PLL_Config(&CSC_PLL_CFG);
    270.         CSC_PLL_Cmd(ENABLE);
    271.         while(CSC_GetSingleFlagStatus(CSC_PLLF) == DRV_Normal);
    272.         CSC_ClearFlag(CSC_PLLF);
    273.         /**********************************************************/

    274.        
    275.         /* CK_MAIN */
    276.         CSC_CK_MAIN_Select(MAIN_CK_HS);       


    277.         /* Configure ICKO function */
    278.                
    279.         /* Configure peripheral clock */
    280.         CSC_PeriphOnModeClock_Config(CSC_ON_PortA,ENABLE);                                          // Enable Port A clock
    281.         CSC_PeriphOnModeClock_Config(CSC_ON_PortB,ENABLE);                                          // Enable Port B clock
    282.         CSC_PeriphOnModeClock_Config(CSC_ON_PortC,ENABLE);                                          // Enable Port C clock
    283.         CSC_PeriphOnModeClock_Config(CSC_ON_PortE,ENABLE);                                          // Enable Port D clock
    284.        
    285.         CSC_PeriphProcessClockSource_Config(CSC_TM36_CKS, CK_APB);
    286.         CSC_PeriphOnModeClock_Config(CSC_ON_TM36, ENABLE);                                          // Enable TIM36 module clock
    287.        
    288.         CSC_PeriphProcessClockSource_Config(CSC_UART0_CKS, CK_APB);
    289.         CSC_PeriphOnModeClock_Config(CSC_ON_UART0, ENABLE);                                          // Enable UART0 module clock
    290.        
    291.         CSC_PeriphProcessClockSource_Config(CSC_ADC0_CKS, CK_APB);
    292.         CSC_PeriphOnModeClock_Config(CSC_ON_ADC0, ENABLE);                                          // Enable ADC0 module clock       
    293.        
    294.         CSC_PeriphOnModeClock_Config(CSC_ON_DMA,ENABLE);

    295.   ProtectModuleReg(CSCprotect);
    296.    
    297. }

    298. void DMA_Init(void)
    299. {
    300.          DMA_BaseInitTypeDef DMATestPattern;

    301.     // ------------------------------------------------------------------------
    302.     // 1.Enable DMA
    303.     DMA_Cmd(ENABLE);
    304.    
    305.     // ------------------------------------------------------------------------
    306.     // 2.Enable Channel0
    307.     DMA_Channel_Cmd(DMAChannel0, ENABLE);
    308.    
    309.     // ------------------------------------------------------------------------
    310.     DMA_BaseInitStructure_Init(&DMATestPattern);
    311.    
    312.     // 3.initial & modify parameter
    313.       
    314.         // DMA channel select
    315.         DMATestPattern.DMAChx = DMAChannel0;
    316.         
    317.         // channel x source/destination auto increase address
    318.         DMATestPattern.SrcSINCSel = DISABLE;
    319.         DMATestPattern.DestDINCSel = ENABLE;
    320.         
    321.         // DMA source peripheral config
    322.         DMATestPattern.SrcSymSel = DMA_ADC0_IN;
    323.         
    324.         // DMA destination peripheral config
    325.         DMATestPattern.DestSymSel = DMA_MEM_Wrtie;
    326.         
    327.         // DMA Burst size config
    328.         DMATestPattern.BurstDataSize = DMA_BurstSize_1Byte;
    329.         
    330.         // DMA transfer data count initial number
    331.         DMATestPattern.DMATransferNUM = 20;
    332.    
    333.         // source/destination config
    334.                                 DMATestPattern.DMASourceAddr = &ADC0->DAT0;
    335.         DMATestPattern.DMADestinationAddr = (uint32_t *)&RcvBuf;
    336.                                
    337.                                                  // Setting M2M simple parameter
    338.                                                  
    339.                                 ADC_DMA_Cmd(ADC0, ENABLE);
    340.                                 DMA_Channel_Cmd(DMAChannel0, ENABLE);
    341.         DMA_Base_Init(&DMATestPattern);
    342.                
    343.        
    344. }


    345. int main()
    346. {
    347.         int i;
    348.         double x;
    349.         PIN_InitTypeDef PINX_InitStruct;
    350.        
    351.         CSC_Init();
    352.         Sample_URT0_Init();
    353.         Sample_TM36_PWM();
    354.         ADC_Init();

    355.        
    356.         //==Set GPIO init
    357.         PINX_InitStruct.PINX_Mode                                 = PINX_Mode_PushPull_O;                                                                 // Pin select Push Pull mode
    358.         PINX_InitStruct.PINX_PUResistant                 = PINX_PUResistant_Enable;                                  // Enable pull up resistor
    359.         PINX_InitStruct.PINX_Speed                                   = PINX_Speed_Low;                         
    360.         PINX_InitStruct.PINX_OUTDrive                         = PINX_OUTDrive_Level0;                                                         // Pin output driver full strength.
    361.         PINX_InitStruct.PINX_FilterDivider                   = PINX_FilterDivider_Bypass;                        // Pin input deglitch filter clock divider bypass
    362.         PINX_InitStruct.PINX_Inverse                         = PINX_Inverse_Disable;                                                         // Pin input data not inverse

    363.         PINX_InitStruct.PINX_Alternate_Function  = 6;                                                                                                                // Pin AFS = TIM36 OC10
    364.         GPIO_PinMode_Config(PINC(2),&PINX_InitStruct);                                                                                                   // Set PC6 function
    365.        
    366.         PINX_InitStruct.PINX_Alternate_Function  = 6;                                                                                                                // Pin AFS =TIM36 trigger output
    367.         GPIO_PinMode_Config(PINC(7),&PINX_InitStruct);                                                                                                   // Set PC2 function
    368.        
    369.         PINX_InitStruct.PINX_Mode                                 = PINX_Mode_Analog_IO;                                                                 // Pin select Analog Input/Output mode
    370.         PINX_InitStruct.PINX_Alternate_Function  = 0;                                                                                                                // Pin AFS = GPA
    371.         GPIO_PinMode_Config(PINA(4),&PINX_InitStruct);                                                                                            // Set PA4 function

    372.         printf("hello\n");
    373.         i=0;

    374.         while(1)
    375.         {               
    376.                
    377.                 i++;
    378.             if(i>=500000)
    379.             {
    380.                                 i=1;
    381.                 while(ADC_GetSingleFlagStatus(ADC0, ADC_E1CNVF) == DRV_UnHappened);
    382.     ADC_ClearFlag(ADC0, ADC_E1CNVF);
    383.                
    384.                 x=((ADC_GetDAT0Data(ADC0)*5)/4096.0);    //This is the Voltage of Verf.

    385.                 printf("%lf\n",x);
    386.                    }
    387.                
    388.         }       

    389. }




















    复制代码
    扫描二维码,随时随地手机跟帖
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    我要发帖 投诉建议 创建版块 申请版主

    快速回复

    您需要登录后才可以回帖
    登录 | 注册
    高级模式

    论坛热帖

    快速回复 广东快乐十分走势图 返回列表
  • 女性之声——全国妇联 2019-03-19
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-03-11
  • 全国小麦收获进度过八成 2019-03-07
  • 【人事】中共临汾市委组织部公示3名拟任职干部 2019-03-07
  • 这泼猴,物理。古文,哲学,基础语文,那一项没出丑?看着就想笑 2019-02-20
  • 云南理发店老板涉嫌杀害女演员因办卡纠纷起杀心 2019-02-20
  • 1至5月我区为企业和社会减负4200余万元 2019-02-09
  • 【学习时刻】参会专家盛小云:坚定文化自信,用高尚的作品引领社会风尚 2019-01-28
  • 绘就生态文明新画卷—甘南州造林绿化工作纪实 2019-01-28
  • 某些人总是用“客观事实”来为自己壮胆,实际上根本不懂什么是“客观事实。 2019-01-12
  • 圣洁的雪山文章中国国家地理网 2018-11-22
  • 崇尚英雄 精忠报国——我们家的报国故事 2018-11-22
  • 618史上最壕“买家”现身 Google以 5.5亿美元投资京东 2018-11-21
  • 看好啦!是时候表演真正的技术了 2018-11-21
  • 日本大阪6.1级地震已致4人死亡 370多人受伤 2018-11-20