GD32开发实战指南(基础篇) 第9章 呼吸灯_焦点观察
电子发烧友网 2023-05-12 22:28:48

开发环境:

MDK:Keil5.30

开发板:GD32F207I-EVAL


(资料图片仅供参考)

MCU:GD32F207IK

1 呼吸灯的工作原理

呼吸灯,就是指灯光设备的亮度随着时间由暗到亮逐渐增强,再由亮到暗逐渐衰减,很有节奏感地一起一伏,就像是在呼吸一样,因而被广泛应用于手机电脑电子设备的指示灯中。

要使用数字器件控制灯光的强弱,我们很自然就想到 PWM(脉冲宽度调制)技术。假如以LED 作为灯光设备,且由控制器输出的 PWM 信号可以直接驱动 LED,PWM 信号中的低电平可点亮 LED 灯。当 LED 以较高的频率进行开关(亮灭)切换时,由于视觉暂留效应,人眼是看不到 LED 灯的闪烁现象的,反映到人眼中能感觉到的是亮度的差别。即以一定的时间长度为周期,LED 灯亮的平均时间越长,亮度就越高,反之越暗。因此,我们可以使用高频率的 PWM 信号,通过调制信号的占空比,控制 LED 灯的亮度。

那么具体我们应该控制 LED 灯以怎样的亮度曲线变化能够达到最好的效果呢?亮度随着时间逐渐变强再衰减,可以用两种常见的数学函数表示,分别是半个周期的正弦函数与指数上升曲线及其对称得到的下降曲线。

相对来说,使用下凹函数曲线灯光处于暗的状态更长,所以指数函数的曲线更符合我们呼吸灯的亮度变化要求。

2 呼吸灯实现

2.1 简单方式

笔者先用最简单的方式来实现,也就是定时改变比较寄存器的值。

1.初始化 GPIO

下面分析具体的定时器配置代码。本实验使用 PB0 作为定时器 PWM 输出通道,先对它进行初始化。作 PWM 输出通道的引脚需要被配置为复用推挽输出模式。

/*    brief      configure PWM GPIO    param[in]  none    param[out] none    retval     none*/static void timer_gpio_init(void){    rcu_periph_clock_enable(RCU_GPIOB);    rcu_periph_clock_enable(RCU_AF);    /* Configure PB0 (TIMER2 CH2) as alternate function */    gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0);}

2.配置定时器模式

在timer2_init()函数中,完成了呼吸灯所需要的定时器 PWM 输出模式配置。

/*    brief      configure the Breath LED peripheral    param[in]  none    param[out] none    retval     none  */void breath_led_init(void){    /* TIMER2 configuration: generate PWM signals with different duty cycles:       TIMER2CLK = SystemCoreClock / 120 = 1MHz */    timer_oc_parameter_struct timer_ocintpara;    timer_parameter_struct timer_initpara;    /* configure the GPIO ports */    timer_gpio_init();    rcu_periph_clock_enable(RCU_TIMER2);    timer_deinit(TIMER2);    /* TIMER1 configuration */    timer_initpara.prescaler         = 119;    timer_initpara.alignedmode       = TIMER_COUNTER_EDGE;    timer_initpara.counterdirection  = TIMER_COUNTER_UP;    timer_initpara.period            = 250;    timer_initpara.clockdivision     = TIMER_CKDIV_DIV1;    timer_initpara.repetitioncounter = 0;    timer_init(TIMER2, &timer_initpara);    /* CH0 configuration in PWM mode 0 */    timer_ocintpara.outputstate  = TIMER_CCX_ENABLE;    timer_ocintpara.outputnstate = TIMER_CCXN_DISABLE;    timer_ocintpara.ocpolarity   = TIMER_OC_POLARITY_HIGH;    timer_ocintpara.ocnpolarity  = TIMER_OCN_POLARITY_HIGH;    timer_ocintpara.ocidlestate  = TIMER_OC_IDLE_STATE_LOW;    timer_ocintpara.ocnidlestate = TIMER_OCN_IDLE_STATE_LOW;    timer_channel_output_config(TIMER2, TIMER_CH_2, &timer_ocintpara);    /* CH0 configuration in PWM mode 0,duty cycle 25% */    timer_channel_output_pulse_value_config(TIMER2, TIMER_CH_2, 0);    timer_channel_output_mode_config(TIMER2, TIMER_CH_2, TIMER_OC_MODE_PWM0);    timer_channel_output_shadow_config(TIMER2, TIMER_CH_2, TIMER_OC_SHADOW_DISABLE);    /* auto-reloadpreload enable */    timer_auto_reload_shadow_enable(TIMER2);    /* TIMER2 enable */    timer_enable(TIMER2);}

这个定时器的模式配置主要分为三个部分,分别为时基初始化,输出模式初始化。

时基初始化

代码中前面的部分是定时器的时基初始化,这部分主要负责配置定时器的定时周期、时钟频率、计数方式等。它使用到库函数timer_init()函数,利用结构体timer_parameter_struct进行配置,该结构体有以下成员:

period

定时周期,实质是存储到重载寄存器CAR的数值,脉冲计数器从 0 累加到这个值上溢或从这个值自减至 0 下溢。这个数值加 1 然后乘以时钟源周期就是实际定时周期。

本实验中向该成员赋值为 255,即定时周期为(255+1)* T ,T 为定时器的时钟周期。

prescaler

对定时器时钟CLK 的预分频值,分频后作为脉冲计数器TIMERx_CNT的驱动时钟,得到脉冲计数器的时钟频率为:CNT=CLK/(N+1),其中 N 为即为赋给本成员的时钟分频值。

本实验给 prescaler 成员赋值为 119,即对时钟 120 分频,所以定时器的时钟周期 T 为 120/120000000。

clockdivision

时钟分频因子。怎么又出现一个配置时钟分频的呢?要注意这个clockdivision和上面的 prescaler 是不一样的。prescaler 预分频配置是对CLK进行分频,分频后的时钟被输出到脉冲计数器CNT。

本实验中是使用内部时钟CLK 作为定时器时钟源的,没有进行滤波所以配置clockdivision为任何数值都没有影响。

alignedmode

本成员配置的为脉冲计数器 CNT 的计数模式,分别为向上计数,向下计数,及中央对齐模式。向上计数即 CNT 从 0 向上累加到 period 中的值,(重载寄存器 CAR 的值),产生上溢事件;向下计数则 CNT 从period 的值累减至0,产生下溢事件。而中央对齐模式则为向上、向下计数的合体,CNT 从 0 累加到period 的值减 1 时,产生一个上溢事件,然后向下计数到 1 时,产生一个计数器下溢事件,再从 0 开始重新计数。

输出模式配置

在本函数代码的后面是关于定时器的输出模式配置的。通用定时器的输出模式由 timer_oc_parameter_struct类型结构体的主要有以下几个成员:

outputstate

配置输出模式的状态使能或关闭输出。

outputnstate

本成员的参数值即为比较寄存器 CH2CV的数值,当脉冲计数器CNT与CH2CV的比较结果发生变化时,输出脉冲将发生跳变。

ocpolarity

有效电平的极性,把 PWM 模式中的有效电平设置为高电平或低电平。

本实验中向该成员赋值为 TIMER_OC_POLARITY_LOW (有效电平为低电平),因为在上面把输出模式配置为 PWM0 模式,向上计数,所以在 CNT< CH0CV 时,通道 n 输出为低电平,否则为高电平。

ocnpolarity

用于比较有效电平的极性。

本实验中就是通过不断改变比较寄存器CH2CV的值,达到控制 PWM 信号的占空比呈指数曲线变化的目的。在本函数代码中,我们对该成员赋予初始为 0,而改变比较寄存器 CH0CV 值的操作是在中断服务函数中修改的。填充完输出模式初始化结构体后,调用输出模式初始化函数 timer_channel_output_config()对通道进行初始化。

以上是最基本的PWM输出调制实现呼吸灯。

笔者接下来还要讲解一下重映射的输出配置。在这里讲解的是通过重映射 TIMER2_CH2到 PB0 上,由 TIMER2_CH2 输出 PWM 来控制LED的亮度。下面我们介绍通过库函数来配置该功能的步骤。

1)开启 TIMER2时钟以及复用功能时钟,配置 PB0为复用输出。

要使用 TIMER2,我们必须先开启 TIMER2的时钟,这点相信大家看了这么多代码,应该明白了。这里我们还要配置 PB0为复用输出,此时,PB0属于复用功能输出。在此只列出库函数设置 AFIO 时钟的方法。

rcu_periph_clock_enable(RCU_AF);

其余的和前面的配置一样,就不再列出了。

2)初始化 TIMER2,设置 TIMER2的 CAR 和 PSC。

3)设置 TIMER2_CH2 的 PWM 模式,使能 TIMER2的 CH2 输出。

4)使能 TIMER2。

在完成以上设置了之后,我们需要使能 TIMER2。 使能 TIMER2的方法前面已经讲解过:

timer_enable(TIMER2);

5)修改 TIMER2_ CH2CV来控制占空比。

最后,在经过以上设置之后, PWM 其实已经开始输出了,只是其占空比和频率都是固定的,而我们通过修改 TIMER2_CH2CV则可以控制 CH2 的输出占空比。继而控制LED的亮度。在库函数中,修改 TIMER2_CH2CV占空比的函数是:

void timer_channel_output_pulse_value_config(uint32_t timer_periph, uint16_t channel, uint32_t pulse)

通过以上5个步骤,我们就可以控制 TIMER2的 CH2 输出 PWM 波了。

接下来看看主函数的代码:

/*    brief      main function    param[in]  none    param[out] none    retval     none*/int main(void){    uint16_t i = 0;    FlagStatus breathe_flag = SET;    //systick init    sysTick_init();    /* configure the Breath LED peripheral */    breath_led_init();    while(1)    {        /* delay a time in milliseconds */        delay_ms(5);        if(SET == breathe_flag)         {            i++;        }        else        {            i--;        }        if(250 < i)        {            breathe_flag = RESET;        }        if(0 >= i)        {            breathe_flag = SET;        }        /* configure TIMER channel output pulse value */        //timer_channel_output_pulse_value_config(TIMER2, TIMER_CH_2, i);        TIMER_CH2CV(TIMER2) = (uint32_t)i;    }}

代码很简单,就是不断改变CH2CV的值从而控制 CH2 的输出占空比。

2.2 中断方式

1.生成指数曲线 PWM 数据

要实现 LED 亮度随着指数曲线变化,我们需要使用占空比呈指数曲线变化的 PWM 信号,而这样的信号由定时器经过查表产生。这个表的数据存储在程序中的数组 indexWave中。

uint8_t indexWave[] = {1,1,2,2,3,4,6,8,10,14,19,25,33,44,59,80,107,143,191,255,255,191,143,107,80,59,44,33,25,19,14,10,8,6,4,3,2,2,1,1};

这个表有 40 个数字,从图中可以看到这些数字呈指数上升再衰减,正好是呼吸灯的一个控制周期。数字的大小范围是 0255,即把 LED 的亮度分为了 0255 个等级。

假如我们把定时器的脉冲计数器 CNT 上限设置为 255,把这个表的数据一个一个地赋值到定时器的比较寄存器CH2CV中,那么在每个 PWM 周期中,当 CNT的计数值小于比较寄存器 CH2CV的值时, 就会在通道中输出低电平,点亮 LED,而随着 CCR 的值由 LED 亮度表得来,所以 LED 点亮的时间就会呈图中的曲线变化,实现呼吸灯的功能。

这个表的数据是使用 matlab软件生成的。该代码运行后会生成一个“index_wave.c”的文件,用户把该文件中的数据复制到工程中的数组中即可。

%本代码用于产生呼吸灯使用的指数函数数据clear;x = [0 : 8/19 : 8];       %设置序列 ,指数上升up = 2.^x ;               %求上升指数序列  up = uint8(up);           %化为8位数据y = [8: -8/19 :0];       %设置序列 ,指数下降down = 2.^y ;            %求下降指数序列down = uint8(down);      %化为8位数据line = [[0:8/19:8],[8:8/19:16]]         %拼接序列val = [up , down]                       %拼接输出序列dlmwrite("index_wave.c",val);       %输出到文件index_wave.cplot(line,val,".");                 %显示波形图

2.初始化 GPIO

这部分和前面的一样,没啥好说的。

3.配置定时器模式

这里也差不多,只是将分频系数设置的稍微大些,另外开启了中断。

/*    brief      configure the Breath LED peripheral    param[in]  none    param[out] none    retval     none  */void breath_led_init(void){    /* TIMER2 configuration: generate PWM signals with different duty cycles*/    timer_oc_parameter_struct timer_ocintpara;    timer_parameter_struct timer_initpara;    /* configure the GPIO ports */    timer_gpio_init();    rcu_periph_clock_enable(RCU_TIMER2);    timer_deinit(TIMER2);    /* TIMER2 configuration */    timer_initpara.prescaler         = 3999;    timer_initpara.alignedmode       = TIMER_COUNTER_EDGE;    timer_initpara.counterdirection  = TIMER_COUNTER_UP;    timer_initpara.period            = 255;    timer_initpara.clockdivision     = TIMER_CKDIV_DIV1;    timer_initpara.repetitioncounter = 0;    timer_init(TIMER2, &timer_initpara);    /* CH2 configuration in PWM mode 0 */    timer_ocintpara.outputstate  = TIMER_CCX_ENABLE;    timer_ocintpara.outputnstate = TIMER_CCXN_DISABLE;    timer_ocintpara.ocpolarity   = TIMER_OC_POLARITY_HIGH;    timer_ocintpara.ocnpolarity  = TIMER_OCN_POLARITY_HIGH;    timer_ocintpara.ocidlestate  = TIMER_OC_IDLE_STATE_LOW;    timer_ocintpara.ocnidlestate = TIMER_OCN_IDLE_STATE_LOW;    timer_channel_output_config(TIMER2, TIMER_CH_2, &timer_ocintpara);    /* CH2 configuration in PWM mode 0,duty cycle 25% */    timer_channel_output_pulse_value_config(TIMER2, TIMER_CH_2, 0);    timer_channel_output_mode_config(TIMER2, TIMER_CH_2, TIMER_OC_MODE_PWM0);    timer_channel_output_shadow_config(TIMER2, TIMER_CH_2, TIMER_OC_SHADOW_DISABLE);    /* auto-reload preload enable */    timer_auto_reload_shadow_enable(TIMER2);    /* Timer2 interrupt setting, preemptive priority 0, sub-priority 2 */    nvic_irq_enable(TIMER2_IRQn, 0, 2);     /* Enable Timer2 update interrupt */    timer_interrupt_enable(TIMER2, TIMER_INT_UP);    /* TIMER2 enable */    timer_enable(TIMER2);}

配置好中断,下面就要编写中断服务函数。

/*!    \\brief      this function handles TIMER2 exception    \\param[in]  none    \\param[out] none    \\retval     none*/void TIMER2_IRQHandler(void){    static uint8_t pwm_index = 0; //用于PWM查表    static uint8_t period_cnt = 0; //用于计算周期数    if(timer_interrupt_flag_get(TIMER2, TIMER_INT_FLAG_UP))    {        /* 清除TIMER2 中断标志位 */        timer_interrupt_flag_clear(TIMER2, TIMER_INT_FLAG_UP);        period_cnt++;        if(period_cnt >= 10)//若输出的周期数大于10,输出下一种脉冲宽的PWM波        {            //根据PWM表修改定时器的比较寄存器值            TIMER_CH2CV(TIMER2) = indexWave[pwm_index];            pwm_index++; //标志PWM表的下一个元素            //若PWM脉冲表已经输出完成一遍,重置PWM查表标志            if( pwm_index >=  40)            {                pwm_index=0;            }            period_cnt=0; //重置周期计数标志        }    }}

本中断服务函数在每次定时器更新事件发生时执行一次(即 256 个定时器时钟周期)。函数中使用了静态变量 pwm_index 和 period_cnt,它们分别用来查找 PWM 表元素和记录同样占空比的脉冲输出了多少次。

本代码的目的是每 10 次定时器中断更新一次 PWM 表中的数据到比较寄存器中,当遍历完 PWM 表的 40 个元素时,再重头开始遍历 PWM 表,周而复始,重复 LED 的呼吸过程。

整个呼吸过程的时间计算方法如下:

因为定时器的 prescaler 设置为 3999;

所以定时器的时钟频率:fTIMER = 120000000/(prescaler+1) = 30000 Hz

即定时器的时钟周期为:tTIMER = 1/fTIMER = 1/30000 s

因为定时器的 period 设置为 255;

所以定时器的中断周期为:tint= tTIMER * (period+1) =0.00753s

因为 PWM 表有 pwm_index = 40 个亮度占空比数据,同种占空比信号输出 period_cnt =10 次

所以一个呼吸周期 T = tint *40 *10 = 3.41s

3 呼吸灯的实验现象

将程序编译好下载到板子中,将PF6接到PB0上,可一看到LED1像呼吸一样渐渐变明或者渐渐变暗,但是方法二明显比方法一更流畅,效果更好。

GD32开发实战指南(基础篇) 第9章 呼吸灯_焦点观察

2023-05-12 22:28:48

巴州区天马山镇寺岭小学开展防震应急演练 提高防灾减灾能力|天天要闻

2023-05-12 21:29:18

焦点热讯:使用键盘控制gazebo小车模型运动

2023-05-12 20:22:09

环球今日报丨未按时披露年报涉信披违法违规 交大昂立被立案调查

2023-05-12 19:44:35

热点评!立方数科:公司近日与应急管理部信息研究院、腾讯云计算有限责任公司签署了《战略合作框架协议》

2023-05-12 19:16:18

全球头条:爱玛科技2022年度拟每股派1.304元转增0.5股 5月19日除权除息

2023-05-12 18:32:12

万讯自控: 关于持股5%以上股东股份减持计划的预披露公告

2023-05-12 18:17:21

【环球报资讯】山东青岛家电产业集群:​增长空间广阔 产业迈向高端

2023-05-12 17:57:12

快消息!北方今年首轮高温来袭:北京济南等最高气温有望超35℃

2023-05-12 17:09:21

谁有梦想?太阳今年夏天只能利用底薪来签约自由球员

2023-05-12 16:53:23

小学生的友谊有多甜?内容可爱到犯规! 世界观焦点

2023-05-12 16:41:33

福建供服公司:因“树”制宜 星旗共创打造安全走廊 资讯

2023-05-12 16:23:11

抖音小店无货源,中小商家,个人创业的新机会!一定要把握好!

2023-05-12 15:48:47

【同人文】永远变成了女生的真寻酱!_环球新消息

2023-05-11 19:25:30

江西五十铃铃粉嘉年华 ▏十年新愿加速向未来

2023-05-11 18:14:52

热文:“托管模式”再升级 淘工厂助厂商掌握爆款公式逆天改命!

2023-05-11 17:54:57

传iPhone15引入USB4技术 速度翻倍高达40Gbps

2023-05-11 17:07:27

天天观察:2022年中国网络表演行业市场营收近2000亿元人民币

2023-05-11 16:57:00

内黄三家合作社入选全国农民专业合作社示范社|环球快消息

2023-05-11 16:29:17

环球微资讯!联美控股与中山翠亨新区达成合作 推进综合能源全国战略布局

2023-05-11 15:44:34

天天观焦点:从文玩“鬼市”到京城网红打卡地,潘家园旧货市场首开周三夜场

2023-05-11 15:22:58

华西证券给予中国人寿买入评级 寿险行业龙头 负债端量稳质提 目标价格为46.3元

2023-05-11 15:05:54

[路演]锡业股份:公司看好锡铟行业未来发展

2023-05-11 14:09:33

全球短讯!全球热议:即时:视讯!中兴通讯董事长李自学:筑基超清视界,共绘数智产业新图景 环球头条-环球观焦点-每日观察|当前时讯 热文

2023-05-11 13:27:34

每日热讯!建发酒业·列级名庄联盟

2023-05-11 13:01:34

上海新阳:5月9日召开业绩说明会,投资者参与 天天日报

2023-05-11 12:33:20

未来已来,省教科院附小为数字化校园转型奠定基础

2023-05-11 11:53:58

全球动态:学前创意美劳·立体手工

2023-05-11 11:32:18

高技术、高附加值产品成为出口新增长点和新优势产业

2023-05-11 11:00:06

每日热文:东北证券:5月10日融券卖出金额409.51万元,占当日流出金额的1.37%

2023-05-11 10:28:50

让“诗和远方”的故事更精彩(暖闻热评)

2023-05-11 10:20:04

禾迈股份:为客户提供光伏贷担保引投资者关注 美国市场符合预期进度|直击业绩会

2023-05-11 09:57:17

测天通地全线护航 天舟六号“带货大哥”使命必达 世界微头条

2023-05-11 09:15:39

【环球聚看点】今日时讯:4000学生去淄博烧烤 淄博市烧烤协会发布声明

2023-05-11 08:59:21

怎么教育孩子才是最正确的方法_怎么教育孩子才是最正确的

2023-05-11 08:04:03

南向资金持续抄底 多只港股ETF份额创历史新高_当前头条

2023-05-11 07:47:52

舍甫琴科:米兰在心理上被国米折磨,但还有机会扳回来

2023-05-11 06:29:47

aecssee aecsse

2023-05-11 05:59:46

天天动态:广外南校区鸟瞰_广外南校区

2023-05-11 04:02:20

谈及梅西未来,阿根廷队主帅称不在乎这些,“只要他舒服开心就行”

2023-05-11 01:38:22

“国和一号”IP形象首次发布-今日快看

2023-05-10 23:15:57

即时:宗校立:美国CPI再度来袭 该如何应对

2023-05-10 22:00:13

河南省出台高端仪器产业发展方案:鼓励社会资本设立产业基金 天天资讯

2023-05-10 21:03:42

继续“打薄”中后台 阿里巴巴-SW拟拆分技术团队 取消首席技术官职位-全球速读

2023-05-10 20:41:25

周洁琼现身机场,露脐牛仔上衣搭牛仔阔腿裤,休闲又时髦!

2023-05-10 19:53:17

每日热议!英镑兑美元技术前景分析:英镑兑美元在1.2600关口上方持稳

2023-05-10 18:49:43

回归初心的诚意之作?敞篷电跑MG Cyberster即将上线 焦点热议

2023-05-10 18:08:28

国光电器收关注函:智能音响是否已搭载ChatGPT?

2023-05-10 17:44:57

如何延长裂解炉使用寿命?《LAND-红外热成像产品在石化行业的应用》专题讲座告诉你答案!|天天热推荐

2023-05-10 16:59:51

合肥幼专:“一切为儿童”走好“鹤琴路”|世界观天下

2023-05-10 16:46:31

盛弘股份涨10.96%

2023-05-10 15:59:13

淘宝天猫架构调整完成 设立3个发展中心

2023-05-10 15:57:51

5月10日山东神驰化工集团油品报价上涨|世界信息

2023-05-10 15:24:55

世界消息!北京发布“文明养犬公开课”!还将有系列重要评选——

2023-05-10 14:51:13

此去繁花相送,归来仍是少年——第五十五中学举办2023届高三年级毕业典礼

2023-05-10 14:04:14

增设声屏障 仙岳高架桥护栏提升改造预计国庆节前完工 天天速读

2023-05-10 13:29:32

【世界热闻】岩羊村

2023-05-10 13:04:05

当前看点!福建宁德全面放宽限购:在中心城区买商品住房不受户籍和套数限制

2023-05-10 12:28:34

港股开盘:指数分化,伊泰煤炭涨超4%,美团、腾讯小幅低开 最新

2023-05-10 11:58:10

Roborace将尝试古德伍德自动驾驶爬山 全球微头条

2023-05-10 11:29:30

威海市总工会倾力当好职工“靠山”

2023-05-10 11:03:09

射手女绝情起来有多狠 她们很腹黑?

2023-05-10 10:43:38

世界快报:中国式现代化的长三角实践 打造全流程智慧医院,这家社区医院为何被居民点赞?

2023-05-10 10:21:38

天天观点:锂矿概念持续走高 中矿资源涨超4%

2023-05-10 10:03:39

追回一名受害人损失 焦点快播

2023-05-10 09:25:02

诸侯相关权利又要求诸侯履行相关义务的制度是_又要求诸侯履行相关义务的制度是|全球今亮点

2023-05-10 09:02:09

百名歌手演唱的歌曲(百名歌星成名曲) 每日视点

2023-05-10 08:27:22

债务违约在即!美财长致电美国多名商界大佬,警告“灾难性”后果_每日速递

2023-05-10 07:37:48

世界观速讯丨世界变局与黄金的巅峰时刻

2023-05-10 06:39:00

孤独的人们-环球消息

2023-05-10 05:48:09

他趁快递员离开抱起快递件就走!被监控拍个正着 今日热门

2023-05-10 04:45:57

剑灵坐标基址_剑灵坐标

2023-05-10 02:18:29

自己租房子,可以做哪些便宜又好吃的饭菜? 重点聚焦

2023-05-09 23:53:55

京东物流陕南产地智能供应链中心项目落户汉阴

2023-05-09 22:22:24

香港理工大学高等研究院大会举行 探讨交叉学科研究与发展

2023-05-09 21:36:40

勒布朗FMVP赔率冲到第三:美媒回顾4次捧杯数据 38岁还要拿大奖?

2023-05-09 21:09:16

述评:美国枪案频发的背后

2023-05-09 20:22:45

当前讯息:平鲁区:干群护航春耕保生产

2023-05-09 19:39:36

一季度锂离子电池出口额同比增长79.9%,出口数量同比减少

2023-05-09 19:00:05

“没有马的视频是没有灵魂的”,凉山彝族娃“神还原”《西游记》 最资讯

2023-05-09 18:23:13

中国平安2022年赔付总件数超2亿件,总金额超2800亿元,践行保险业高质量发展-天天实时

2023-05-09 18:09:09

环球通讯!将所有的遇见写作金风玉露一相逢 联动锦衣“女儿情”即将登场!

2023-05-09 17:25:16

亚马逊、微软、谷歌等大厂已推出或计划发布8款服务器芯片和云端AI芯片

2023-05-09 16:54:14

杞县城管局推行便民服务 优化燃气企业营商环境 天天快讯

2023-05-09 16:41:36

世界即时:为什么农业银行卡限额1000 原因如下所示

2023-05-09 16:02:50

速读:每体:阿根廷中场圭多-罗德里格斯是巴萨引援备选之一

2023-05-09 15:38:31

20家车企混战新能源:谁超车,谁翻车?-全球热闻

2023-05-09 15:16:09

腾讯公司利润达1882亿 网易与暴雪分手无伤大雅利润达203亿 报资讯

2023-05-09 14:30:09

柳工董秘回复:电动化是工程机械行业的未来发展趋势,也是中国品牌扬帆出海的重要机遇 天天快播报

2023-05-09 13:57:02

社情民意信息例文 社情民意范例

2023-05-09 13:08:55

显示效果稳了!曝小米14年底发布:采用华星屏 边框最窄

2023-05-09 12:37:14

蔡甸人注意!买房落户对社保是否有要求,户口迁移有哪些条件?-当前滚动

2023-05-09 12:09:30

日本3月实际工资同比下降2.9%,连续12个月下滑 今日精选

2023-05-09 11:35:40

江苏徐州:打好政策“组合拳” 为高质量发展“蓄势赋能”

2023-05-09 11:05:28

美法官下令:禁止特朗普在社交平台发布涉“封口费”案证据

2023-05-09 10:41:16

2023款大众ID.4 X:口碑与品质齐飞的电车,你能找到它的短板吗?-环球今头条

2023-05-09 10:15:36

世上疮痍诗中圣哲民间疾苦笔底波澜翻译_世上疮痍诗中圣哲民间疾苦笔底波澜 热资讯

2023-05-09 09:54:23

记者:若击败西班牙人夺冠,巴萨计划下周一举行夺冠游行_世界百事通

2023-05-09 09:27:15

河南新县:初夏时节插秧忙

2023-05-09 09:10:01

不再一口价 两部门动刀房产中介费

2023-05-09 08:17:14

怎样才能快速学会游泳(学会游泳是有益无害的吗) 世界实时

2023-05-09 07:31:12

硅基半导体自旋量子比特实现超快调控-天天亮点

2023-05-09 06:35:14

当前关注:山西日报社长_山西日报社

2023-05-09 05:58:52

今亮点!烟囱效应的影响因素有哪些_烟囱效应

2023-05-09 04:10:06

核心城市需发挥城市群科创的“领头羊”作用_焦点关注

2023-05-09 01:51:44

天天观天下!中信股份(00267):中信特钢选举钱刚为董事长

2023-05-08 23:17:56

张之臻,梦想的天空没有极限

2023-05-08 22:18:21

亚盛医药-B(06855.HK):向172名雇员授出137.91万份受限制股份单位

2023-05-08 21:27:18

环球速讯:培训赋能,临工重机助力矿挖市场服务升级

2023-05-08 20:57:48

【环球财经】欧洲银行股继续反弹 分析人士对德股行情依然乐观

2023-05-08 19:50:08

2球1助不满足!阿德耶米:主动请缨却失点像天塌了,后面没心情踢 世界滚动

2023-05-08 19:16:40

播报:舍得酒业隐忧:经销商“剧烈”变动 经营现金流持续减少应收账款、存货大增

2023-05-08 18:54:59

环球今头条!任天堂出手,知名 Switch 安卓模拟器 Skyline 宣布停止开发

2023-05-08 18:08:55

监管部门十方面举措加强房地产经纪行业管理

2023-05-08 17:44:47

天天讯息:太阳当空照,气温飙得高!本周河南最高气温将升至30℃以上

2023-05-08 17:01:13

继母诋毁女儿致其被网暴并多次自杀|焦点播报

2023-05-08 16:50:14

世界播报:2023高考|山东公费生招生政策来啦!

2023-05-08 16:08:03

全球微速讯:河西区推进新建补建路灯项目 路灯亮了人心暖了

2023-05-08 15:46:43

一胎两宝总裁爹地请签收全集免费观看

2023-05-08 15:12:08

员工不转朋友圈被罚1万且开除?法院判了!

2023-05-08 14:17:11

【世界时快讯】太平洋给予酒鬼酒买入评级

2023-05-08 13:28:33

立夏尝新走起!这里的樱桃园等你去打卡

2023-05-08 12:44:45

十级伤残最低赔几万

2023-05-08 12:16:07

嘉宝生活服务被列为被执行人,执行标的金额约10.61万元-世界要闻

2023-05-08 11:45:45

每日看点!俄罗斯举行胜利日阅兵总彩排

2023-05-08 11:21:51

中国推动建立防范外卖食品浪费长效机制|环球讯息

2023-05-08 10:49:13

微资讯!喝酸奶、吃水果,怎么吃有利糖尿病预防?

2023-05-08 10:25:03

中国式现代化的长三角实践|发挥龙头辐射作用 浦东引领长三角科创共同体建设

2023-05-08 09:57:04

“五一”延庆乡村游收入首破亿元大关

2023-05-08 09:30:32

补贴30%、最高1000万元!广东新型储能产业化项目申报专项补贴 天天快播报

2023-05-08 08:57:03

旋转岛中的动物_旋转岛_当前简讯

2023-05-08 08:20:52

追梦·一线职工风采录|一个创新成果获24项专利 全球播报

2023-05-08 07:48:26

广西壮族自治区玉林市2023-05-08 05:26发布暴雨橙色预警_全球聚焦

2023-05-08 06:43:18

厉害,平远仁居拍卖一宗190平方综合用地,成交价134万! 环球快播

2023-05-08 05:57:14

环球视点!妻子的秘密演员人物介绍演员_妻子的谎言演员表

2023-05-08 03:47:15

少年包青天何中华演过谁_何中华在少年包青天中饰演的角色-今日视点

2023-05-08 00:58:59

全球热资讯!Here we go!罗马诺:24岁里昂中场奥亚尔自由身加盟罗马

2023-05-07 22:32:59

全球微动态丨国家中医药博物馆专家到湘西州调研少数民族医药发展情况

2023-05-07 21:18:34

同样都有烧烤,为何淄博却火了?要想健康吃烧烤,需注意这6点-快讯

2023-05-07 20:17:51

天天微动态丨5月7日晚间沪深上市公司重大事项公告最新快递

2023-05-07 19:39:24

煲仔饭15种家常做法?-环球速看

2023-05-07 18:29:24

百事通!《平凡之路》金晨突破出演三高“白骨精”,戏内戏外反差巨大

2023-05-07 17:25:49

淮海实业集团:丰富学习形式 创新自选动作 当前焦点

2023-05-07 16:40:08

老话说:“门前放3物,财神迎进屋”,到底是哪三物?看完你懂了!_世界播报

2023-05-07 15:59:06

清风头条|郴州嘉禾农商银行:奏好“五部曲”以家风促行风

2023-05-07 14:57:42

2023就业率最高的10个专业 哪些比较热门 全球最新

2023-05-07 13:52:01

环球新动态:合肥的吴大叔,火了!

2023-05-07 12:03:25

MSI磕头拜年石头人图,六场比赛胜率0%,成了版本陷阱

2023-05-07 11:35:20

焦点快报!大头儿子小头爸爸小报慢动作_大头儿子小头爸爸小报

2023-05-07 10:52:55

攻入世界波!陈哲超助梅州客家取胜 世界聚焦

2023-05-07 09:56:31

大雁塔小学西沣分校举行三年级春季家长会_当前信息

2023-05-07 09:06:44

杭州购二套房无需落户满5年?假的|世界简讯

2023-05-07 07:53:30

花生仁汤

2023-05-07 07:00:41

百米名将山县亮太在100米项目中跑出10.39秒一举刷新日本国家纪录 全球报道

2023-05-07 05:06:22

每日视讯:冰晶盒怎么用_冰晶盒

2023-05-07 02:09:06

工伤待遇发放标准_工伤一次性就业补助金标准|全球聚焦

2023-05-06 23:54:42

星火成炬 | 飞扬吧 青春 环球热消息

2023-05-06 22:03:25

当前关注:放置王国竞技场好玩吗 放置王国竞技场玩法简介

2023-05-06 21:29:34

今日热文:中国商业联合会:5月份中国零售业景气指数(CRPI)为51.1% 连续5个月保持在荣枯线以上

2023-05-06 20:51:44

兰博基尼多少钱一辆最便宜的跑车_兰博基尼多少钱一辆-环球快播

2023-05-06 20:00:26

【环球报资讯】我国首个综合性科学中心建设全面启动

2023-05-06 19:01:27

塞尔达传说王国之泪龙岩石怎么采集 龙岩石采集位置攻略[多图] 天天微头条

2023-05-06 18:13:44

时讯:【关注】商务部郑重声明

2023-05-06 17:52:58

兵团实施消费提振十大行动_焦点速递

2023-05-06 17:26:23

环球新动态:因性别歧视!拳头游戏将支付前任、现任女性员工一亿美元和解金

2023-05-06 16:45:03

美研究:新冠疫情高峰期 美国针对儿童的枪击事件激增一倍多

2023-05-06 15:59:49

俞敏洪的班,究竟谁能接?

2023-05-06 15:20:09

取消转正定级的文件_转正定级取消

2023-05-06 14:59:53

【世界快播报】九阳豆浆机食谱大全视频(九阳豆浆机食谱大全)

2023-05-06 14:19:02

港剧续集《家族继承者》即将开拍,前小生获钦定演男主

2023-05-06 13:24:06

珍娜·奥尔特将出演《阴间大法师2》 扮演薇诺娜·瑞德的女儿

2023-05-06 12:29:28

焦点速递!奇瑞集团:4月销售汽车12.7万辆,同比增长128%。

2023-05-06 11:51:20

伊斯佳2022年亏损1680.32万同比由盈转亏公司销售未达预期 天天简讯

2023-05-06 11:28:36

赊刀人是什么小说_赊刀人是什么

2023-05-06 10:49:48

7-6,6-2!恭喜金花张帅:强势挺进温网32强,收获12万镑奖金

2023-05-06 10:24:39

立夏吃一蛋力气长一万 立夏有哪些风俗、俗语 前沿热点

2023-05-06 09:49:44

内蒙古路况气象预警信息(2023.5.6) 焦点热闻

2023-05-06 09:22:27

CBA官方操纵比赛?广厦老板炮轰出局有隐情!名记把矛头指向姚明 全球热议

2023-05-06 08:46:33

第133届广交会闭幕 “绿色”理念贯穿广交会各环节

2023-05-06 07:48:19

【全球新要闻】小y账号密码_www xiaohei com

2023-05-06 06:05:10

广交会观察:“新三样”异军突起 “老三样”力求突破_每日动态

2023-05-06 04:52:38

环球速递!党组织在纪律审查中发现党员严重违纪_党组织在纪律审查中发现党员有

2023-05-06 02:58:59

天天热文:福建漳州旅游景点大全_漳州旅游景点

2023-05-06 00:48:24

世界观察:白羊座女明星有哪些_哪些女明星是天秤座

2023-05-05 23:03:51

环球观焦点:“五一”小长假期间 江苏铁路累计发送旅客887万人次

2023-05-05 21:59:06

速讯:东西问·中外对话丨当我们纪念马克思时,我们在纪念什么?

2023-05-05 21:09:27

全球视讯!意甲第34轮:AC米兰VS拉齐奥,为了欧冠资格,卫冕冠军非赢不可

2023-05-05 20:42:19

欧盟死磕苹果 新机不准加密USB-C接口否则禁售

2023-05-05 20:01:37

金禾实业:拟以1亿元至2亿元回购股份

2023-05-05 19:25:30

上交所:嵘泰转债2023年5月5日相关匹配成交取消 交易无效_每日短讯

2023-05-05 19:05:33

关注:携手推动酒业标准化发展 湖北省标质院与黄鹤楼酒业签订战略合作协议

2023-05-05 18:17:40

世界热讯:一季报披露敏感期买入股票,中超控股监事刘洪斌致歉

2023-05-05 17:43:07

北京石油大学到底怎么样中国排名中国华东关系-世界快看

2023-05-05 17:18:57

今日共34只个股股价创新高 集中在医药生物、文化传媒行业-环球观天下

2023-05-05 17:01:07

899元起 中兴远航40发布:紫光展锐T760、LCD水滴屏-天天精选

2023-05-05 16:27:55

日本警方:地震造成当地至少5人受伤,其中一人“已无生命体征”

2023-05-05 15:50:03

新浪彩票专家郭哥竞彩推荐:阿德莱德+勒沃库森

2023-05-05 15:20:58

与狼共舞演员表介绍_与狼共舞电视剧简介|全球短讯

2023-05-05 14:41:47

宝马提车时注意事项(提车时注意事项) 全球热闻

2023-05-05 14:08:44

jovi语音下载安装(jovi语音下载安装桌面)

2023-05-05 13:38:44