当前位置: 首页 >  资讯中心  >   >  正文

最新:RK3588开发板(armsom-w3)之PWM实操

  • 2023-06-11 14:56:02 来源:jf_30051736

PWM介绍

专栏总目录PWM是脉宽调制(Pulse Width Modulation)的缩写。它是一种用于控制电子设备的技术,通过改变电信号的脉冲宽度来实现对设备的控制。

PWM基本概念

PWM信号由一个固定频率的周期性脉冲序列组成,每个脉冲的宽度(持续时间)可以根据需要进行调节。调节脉冲宽度的比例可以改变平均电压或电流的大小,从而实现对设备的控制。


(资料图片仅供参考)

当谈论PWM时,以下三个关键术语经常被提及:

频率(Frequency):PWM信号的频率是指每秒钟内脉冲的数量。

周期(Period):PWM信号的周期是指一个完整脉冲序列所花费的时间。它是频率的倒数,以秒为单位表示。周期可以通过将频率的倒数计算得到,例如,一个10kHz的PWM信号的周期为0.1毫秒(100微秒)。

占空比(Duty Cycle):占空比是指PWM信号中脉冲宽度与周期之间的比例关系。它表示了脉冲在一个周期中所占据的时间比例,通常以百分比表示。占空比为0%意味着脉冲不存在(完全低电平),而占空比为100%表示脉冲持续时间占据了整个周期(完全高电平)。在实际应用中,占空比可以在0%到100%之间任意调整,以实现所需的控制效果。

PWM驱动

pwm驱动是一个通用的驱动,SOC厂家都会在SDK里面默认打开

驱动文件

驱动文件所在位置:

drivers/pwm/pwm-rockchip.c

默认SDK已经加载好了PWM的驱动,下文我们主要注意PWM怎么使用

DTS 节点配置

DTS 配置参考文档

Documentation/devicetree/bindings/pwm/pwm.txt

以下为一个例子的示例

Node name { compatible = "Driver matching character"; pwms = < &pwmX 0 25000 0 >; }; &pwmX { status = "okay"; pinctrl-names = "active"; pinctrl-0 = < &pwmX_pin_pull_down >; };

pwms的几个参数说明如下:

参数 1,表示 index (per-chip index of the PWM to request),一般是 0,因为我们 Rockchip PWM 每个chip 只有一个。

参数 2,表示 PWM 输出波形的时间周期,单位是 ns;例如下面配置的 25000 就是表示想要得到的

PWM 输出周期是 40K 赫兹。

参数 3,表示极性,为可选参数;下面例子中的配置为负极性。

PWM使用

PWM 提供了用户层的接口,在 /sys/class/pwm/ 节点下面,PWM 驱动加载成功后,会在/sys/class/pwm/ 目录下产生 pwmchip0 目录;向 export 文件写入 0,就是打开 pwm 定时器0,会产生一个 pwm0 目录,相反的往 unexport 写入 0 就会关闭 pwm 定时器了,同时 pwm0 目录会

被删除,该目录下有以下几个文件:

enable:写入 1 使能 pwm,写入 0 关闭 pwm;

polarity:有 normal 或 inversed两个参数选择,表示输出引脚电平翻转;

duty_cycle:在 normal 模式下,表示一个周期内高电平持续的时间(单位:纳秒),在

reversed 模式下,表示一个周期中低电平持续的时间(单位:纳秒);

period:表示 pwm 波的周期(单位:纳秒);

以下是 pwmchip0 的例子,设置 pwm0 输出频率 100K,占空比 50%, 极性为正极性:

cd /sys/class/pwm/pwmchip0/echo 0 > exportcd pwm0echo 10000 > periodecho 5000 > duty_cycleecho normal > polarityecho 1 > enable

PWM应用实例

通常电子设备中应用pwm是比较常见的,比如风扇电机控制,电视背光控制, LED 照明调光、电动工具马达控制、汽车加热器等领域。

这里简单介绍一下pwm控制LED灯实现呼吸灯效果。

呼吸灯需要灯的驱动与PWM的驱动结合,两个驱动之间传递数据,我们可以在驱动中调用其他的驱动。

led是我需要的设备,这个设备用到了pwm,而pwm是用默认的驱动。

硬件上我们在开发板找到具有pwm功能的引脚

设备树的修改如下:

/{breathing_light {compatible = "lhd,breathing_light_test";backlight {pwms = < &pwm8 0 25000 0 >;pwm-names = "breathing_light"; };};};&pwm8 {status = "okay";};

写一个驱动。内部在使用PWM子系统。形成了包含驱动的驱动。

示例代码

驱动程序

#include < linux/init.h >#include < linux/module.h >#include < linux/fs.h >#include < linux/cdev.h >#include < linux/uaccess.h >#include < linux/types.h >#include < linux/kernel.h >#include < linux/delay.h >#include < linux/ide.h >#include < linux/errno.h >#include < linux/gpio.h >//#include < asm/mach/map.h >#include < linux/of.h >#include < linux/of_address.h >#include < linux/of_gpio.h >#include < asm/io.h >#include < linux/device.h >#include < linux/platform_device.h >#include < linux/pwm.h >#define RED_LED_DTS_COMPATIBLE       "lhd,breathing_light_test"       /* 设备树节点匹配属性 */#define LED_PWM_CMD_SET_DUTY         0x01#define LED_PWM_CMD_SET_PERIOD       0x02#define LED_PWM_CMD_SET_BOTH         0x03#define LED_PWM_CMD_ENABLE           0x04#define LED_PWM_CMD_DISABLE          0x05struct led_pwm_param{    int duty_ns;    int period_ns;};struct red_led_dev {    dev_t dev_no;                        struct cdev chrdev;                struct class *led_class;    struct device_node *dev_node;    struct pwm_device *red_led_pwm;};static struct led_pwm_param led_pwm;static struct red_led_dev led_dev;static int red_led_drv_open (struct inode *node, struct file *file){    int ret = 0;    //pwm_set_periodnnn(led_dev.red_led_pwm, PWM_POLARITY_INVERSED);//设置PWM信号的极性pwm_enable(led_dev.red_led_pwm);//启用指定PWM设备,使其开始输出PWM信号。    printk("red_led_pwm open");    return ret;}static ssize_t red_led_drv_write (struct file *file, const char __user *buf, size_t size, loff_t *offset){    int err;    if (size != sizeof(led_pwm)) return -EINVAL;err = copy_from_user(&led_pwm, buf, size);    if (err > 0) return -EFAULT;pwm_config(led_dev.red_led_pwm, led_pwm.duty_ns, led_pwm.period_ns);//配置PWM设备的基本参数,如频率、占空比等。    printk("red_led_pwm write");return 1;}static long drv_ioctl(struct file *filp, unsigned int cmd, unsigned long arg){    int ret = 0;    void __user *my_user_space = (void __user *)arg;        switch (cmd)    {        case LED_PWM_CMD_SET_DUTY:            ret = copy_from_user(&led_pwm.duty_ns, my_user_space, sizeof(led_pwm.duty_ns));            if (ret > 0) return -EFAULT;            pwm_config(led_dev.red_led_pwm, led_pwm.duty_ns, led_pwm.period_ns);            break;        case LED_PWM_CMD_SET_PERIOD:            ret = copy_from_user(&led_pwm.period_ns, my_user_space, sizeof(led_pwm.period_ns));            if (ret > 0) return -EFAULT;            pwm_config(led_dev.red_led_pwm, led_pwm.duty_ns, led_pwm.period_ns);            break;        case LED_PWM_CMD_SET_BOTH:             ret = copy_from_user(&led_pwm, my_user_space, sizeof(led_pwm));            if (ret > 0) return -EFAULT;            pwm_config(led_dev.red_led_pwm, led_pwm.duty_ns, led_pwm.period_ns);            break;        case LED_PWM_CMD_ENABLE:            pwm_enable(led_dev.red_led_pwm);            break;        case LED_PWM_CMD_DISABLE:            pwm_disable(led_dev.red_led_pwm);            break;    }    return 0;}static int red_led_drv_release(struct inode *node, struct file *filp){    int ret = 0;    pwm_config(led_dev.red_led_pwm, 0, 5000);//配置PWM设备的基本参数,如频率、占空比等。    printk("led pwm dev close");//    pwm_disable(led_dev.red_led_pwm);    return ret;}static struct file_operations red_led_drv = {.owner = THIS_MODULE,.open    = red_led_drv_open,.write   = red_led_drv_write,    .unlocked_ioctl = drv_ioctl,    .release  = red_led_drv_release,};/*设备树的匹配列表 */static struct of_device_id dts_match_table[] = {    {.compatible = RED_LED_DTS_COMPATIBLE, },      {},                  };static int led_red_driver_probe(struct platform_device *pdev){    int err;    int ret;    struct device *tdev;    struct device_node *child;    tdev = &pdev- >dev;    child = of_get_next_child(tdev- >of_node, NULL);      /* 获取设备树子节点 */if (!child) {        return -EINVAL;    }    led_dev.red_led_pwm = devm_of_pwm_get(tdev, child, NULL);     /* 从子节点中获取PWM设备,设备树获取这个设备就可以了 */    if (IS_ERR(led_dev.red_led_pwm)) {        printk(KERN_ERR"can"t get breathing_light!!");        return -EFAULT;    }    ret = alloc_chrdev_region(&led_dev.dev_no, 0, 1, "breathing_light");//动态分配字符设备的主设备号if (ret < 0) {pr_err("Error: failed to register mbochs_dev, err: %d", ret);return ret;}cdev_init(&led_dev.chrdev, &red_led_drv);//初始化字符设备结构体cdevcdev_add(&led_dev.chrdev, led_dev.dev_no, 1);//将已经初始化的字符设备结构体cdev添加到系统中    led_dev.led_class = class_create(THIS_MODULE, "breathing_light");//创建一个设备类(device class)并注册到内核中err = PTR_ERR(led_dev.led_class);if (IS_ERR(led_dev.led_class)) {        goto failed1;}    tdev = device_create(led_dev.led_class , NULL, led_dev.dev_no, NULL, "breathing_light"); //创建一个设备实例并注册到设备类中    if (IS_ERR(tdev)) {        ret = -EINVAL;goto failed2;}   printk(KERN_INFO"%s %s line %d", __FILE__, __FUNCTION__, __LINE__);        return 0;failed2:    device_destroy(led_dev.led_class, led_dev.dev_no);    class_destroy(led_dev.led_class);failed1:    cdev_del(&led_dev.chrdev);unregister_chrdev_region(led_dev.dev_no, 1);    return ret;}int led_red_driver_remove(struct platform_device *dev){    // pwm_disable(led_dev.red_led_pwm);    // pwm_free(led_dev.red_led_pwm);    printk(KERN_INFO"driver remove %s %s line %d", __FILE__, __FUNCTION__, __LINE__);    device_destroy(led_dev.led_class, led_dev.dev_no);class_destroy(led_dev.led_class);unregister_chrdev_region(led_dev.dev_no, 1);    cdev_del(&led_dev.chrdev);         return 0;}static struct platform_driver red_led_platform_driver = {      .probe = led_red_driver_probe,      .remove = led_red_driver_remove,      .driver = {        .name = "lhd,breathing_light_test",        .owner = THIS_MODULE,        .of_match_table = dts_match_table,         //通过设备树匹配      },};module_platform_driver(red_led_platform_driver);MODULE_AUTHOR("LHD");MODULE_LICENSE("GPL");

将上述驱动编译为ko文件然后push进3588开发板里面

应用层程序

#include "stdio.h"#include < sys/types.h >#include < sys/stat.h >#include < fcntl.h >#include < unistd.h >#include < stdio.h >#include < string.h >#include < sys/ioctl.h >#include < poll.h >#include < stdint.h >#define DEV_NAME   "/dev/breathing_light"#define LED_PWM_CMD_SET_DUTY         0x01#define LED_PWM_CMD_SET_PERIOD       0x02#define LED_PWM_CMD_SET_BOTH         0x03#define LED_PWM_CMD_ENABLE           0x04#define LED_PWM_CMD_DISABLE          0x05struct led_pwm_param {    int duty_ns;    int period_ns;};void sleep_ms(unsigned int ms){    struct timeval delay;delay.tv_sec = 0;delay.tv_usec = ms * 1000; select(0, NULL, NULL, NULL, &delay);}int main(int argc, char **argv){    int fd;    int ret;  /* 2. 打开文件 */fd = open(DEV_NAME, O_RDWR | O_NONBLOCK);   // | O_NONBLOCKif (fd < 0){printf("can not open file %s, %d", DEV_NAME, fd);return -1;}         int buf = 3;struct led_pwm_param led_pwm;led_pwm.duty_ns = 500;led_pwm.period_ns = 5000;    write(fd, &led_pwm, sizeof(led_pwm));    sleep_ms(3000);while(1){if(led_pwm.duty_ns<=500){while(led_pwm.duty_ns< led_pwm.period_ns){ioctl(fd, LED_PWM_CMD_SET_DUTY, &led_pwm.duty_ns);sleep_ms(50);led_pwm.duty_ns += 300;}}else{while(led_pwm.duty_ns > 500){ioctl(fd, LED_PWM_CMD_SET_DUTY, &led_pwm.duty_ns);sleep_ms(50);led_pwm.duty_ns -= 300;}}}close(fd);        return 0;}

使用3588自带的编译器将用户程序编译进开发板

prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc apptest_breathing_light_.c -o testpwm

adb push path/testpwm /userdata

chmod 777 testpwm

./testpwm

最后可以看到灯明灭交替的效果

审核编辑:汤梓红

标签:

最新推荐

京菜美食节发布三大餐饮榜单 北京全市餐饮消费明显向好

昨天,以中国京菜,精彩北京为主题的2022北京消费季第六届中国京菜美食文化节暨大众点评北京特色榜单发...

律师兼任调解员 不打官司解纠纷

律师兼任调解员,不打官司也能化解纠纷,代理调解受指派的公益性案件还免费。这是兵团第十师北屯市探索...

青海2022年上半年英语四级报名时间:3月15日至3月18日

根据教育部教育考试院统一安排,2022年上半年全国大学英语四、六级口语考试将于5月21日-22日举行,笔试...

人生第一桶金、与学业冲突……学生代购的“苦”与“乐”

  学生代购的“苦”与“乐”  “你问的这个产品现在做促销活动,买一件包邮,还送小样和面膜……”...

辽宁大连发布10日新增21例本土确诊病例行程轨迹

  11月11日大连市新冠肺炎疫情防控总指挥部发布,11月10日0时至24时,大连市新增21例本土新冠肺炎确诊...

纤维素制成闪光材料无毒可降解 或彻底改变化妆品行业

  纤维素制成闪光材料无毒可降解  或彻底改变化妆品行业  科技日报北京11月11日电 (实习记者张...

新冠疫情期间 海洋中或堆积2.8万吨相关塑料废物

  海洋中或堆积了2 8万吨新冠废物  科技日报北京11月11日电 (记者刘霞)据美国趣味科学网站10日报...

开屏广告又现新花招,换个马甲就重来?

  开屏广告又现新花招,换个马甲就重来?  ■ 来论  据媒体报道,“双十一”期间,一些App的开屏...

对不合理教师资格认定标准,该全面清理了

  对不合理教师资格认定标准,该全面清理了  ■ 来论  针对网友留言反映的“糖尿病无法通过教师...

虚假宣传、以次充好 直播间商家“放水”让消费者闹心

  虚假宣传、以次充好、售卖临期产品不提示直播间商家“放水”让消费者闹心  关注“双11”  今年...

“扫码抽手机”实则是广告 快递单广告是谁发的?

  “扫码抽手机”实则是广告  快递单能“领红包”面单广告是谁发的?  “双11”之际,消费者被商...

北京市本起疫情部分确诊病例病毒全基因组测序已完成

  中新网11月12日电 据北京市疾病预防控制中心微信公众号消息,2021年11月10日北京市接报1例在京存在...

辽宁大连本轮疫情病毒为德尔塔变异株 24个区域划定为中风险地区

  (抗击新冠肺炎)辽宁大连本轮疫情病毒为德尔塔变异株 24个区域划定为中风险地区  中新社大连11月1...

西安市鄠邑区太平峪首次发现野生川金丝猴踪迹

  中新网西安11月11日电 (梅镱泷 杨起超)记者11日从西安市鄠邑区秦保局获悉,太平国有生态林场架设...

成都停业整顿56家零售药店 买感冒药需提供身份证

  (抗击新冠肺炎)成都停业整顿56家零售药店 买感冒药需提供身份证  中新网成都11月11日电 (记者 ...

大连市启动第二轮全员核酸检测

  中新网大连11月11日电 (记者 杨毅) 11月11日,大连市政府秘书长衣庆焘在大连疫情防控新闻发布会...

浙江衢州发现的西周墓葬群或为“姑蔑王陵”

  新华社杭州11月11日电(记者冯源)在商周时期,如今的浙江中西部活跃着一个名为“姑蔑”的族群,但是...

大连本轮疫情为德尔塔变异株

  中新网大连11月11日电 (记者 杨毅)11月11日,大连市政府秘书长衣庆焘在大连疫情防控工作新闻发布...

大连:本轮疫情病毒载量高、传染性强 代际传播为2天左右

  中新网大连11月11日电 (记者 杨毅)11月11日,大连市政府秘书长衣庆焘在大连疫情防控工作新闻发布...

25名干警获云南“最美政法干警”表彰

  中新网昆明11月11日电(记者 缪超)云南“最美政法干警”发布仪式11日在昆明举行。会上,授予昆明市...

甘肃凝聚“她力量”:互助抗疫,女人更懂女人心

  (抗击新冠肺炎)甘肃凝聚“她力量”:互助抗疫,女人更懂女人心  中新网兰州11月11日电 (记者 徐...

甘肃戈壁的“明星劳模”:自编自导让每一个工人唱“主角”

  中新网兰州11月11日电 (史静静)在甘肃金川公司,27年来葛小海始终在生产一线,他参与的“渣罐车制...

跨越千山万水 浙江爱心“温暖”新疆沙雅孩子

  中新网乌鲁木齐11月11日电 (王小军 罗宣政 廖超)11月11日,一批来自浙江嘉兴的爱心物资,跨越...

“钢轨神探”启5大铁路大动脉9300公里冬季“诊疗”

  中新网兰州11月11日电 (邬凡 朱学成)11月10日5时30分,位于敦煌车站旁的敦煌综合工区,钢轨探伤车...

重庆把接种点“搬”进小学,8岁学生:“我不怕疼,打疫苗是为抵抗病毒”

  中新网重庆11月11日电 (梁钦卿)“我今年上小学三年级了,我不怕疼,打疫苗是为了抵抗新冠病毒。”1...

四川绵阳:一男子酒后报警谎称自己是“黄码”被行拘10天

  中新网绵阳11月11日电 (岳波 李远梅)四川绵阳警方11日通报称,一男子酒后无聊多次报警称自己的...

民航局对多个入境航班发出熔断指令

  中新网11月11日电 据中国民航局网站消息,11月11日,民航局再发熔断指令,对德国汉莎航空公司LH728...

疫情中轮椅上的“逆行者”:想为大家做力所能及的事

  中新网成都11月11日电 题:疫情中轮椅上的“逆行者”:想为大家做力所能及的事  作者 祝欢  ...

上海警方:“三无产品”借短视频平台引流诈骗近千名受害人

  中新网上海11月11日电 (记者 李姝徵)上海警方11日召开发布会披露,在近期“砺剑”行动中破获了一...

山西搭建交通事故重伤员无差别急救绿色通道 累计救助7727个受困家庭

  中新网太原11月11日电 (记者 李庭耀)记者11日从山西省政府新闻办举行的新闻发布会上获悉,山西推...

三万余尾“水中大熊猫”放流新疆博斯腾湖(图)

  中新网乌鲁木齐11月11日电 (刘雨珊 牛雨萌 艾尼)11日,记者从新疆水产科研所获悉,新疆博湖县将...

大连新增11个中风险地区

  中新网大连11月11日电 (记者 杨毅)大连市新冠肺炎疫情防控总指挥部 11日发布公告,大连市将庄河...

陕西科技大学开设“酿酒课” 培养学生知行合一

  中新网西安11月11日电 (记者 党田野)身穿白色“礼服”,摇晃着酒杯,时不时浅酌一口啤酒,然后与...

辽宁大连:今日新增十一个中风险地区

  11月11日大连市新冠肺炎疫情防控总指挥部发布,按照国务院应对新冠肺炎疫情联防联控机制关于科学划...

“双十一”南京的猪都“脱单”了?其实还有更让人嫉妒的……

  中新网南京11月11日电 题:这个“双十一”南京的猪都“脱单”了 其实还有更让人嫉妒的……  ...

内蒙古警方悬赏20万缉凶扎兰屯重大刑事案嫌疑人

  中新网呼伦贝尔11月11日电 (记者 张林虎)11日,记者从内蒙古自治区呼伦贝尔市公安局获悉,该局将...

“帅府主题系列甜品”发布:孙中山喜食“牛奶煮苹果” 宋庆龄爱吃蛋糕

  中新网广州11月11日电 (记者 程景伟)“寻味帅府邂逅甜蜜——2021年帅府之夜”暨“海外拾珠——孙...

江苏徐州“家门口车管所”便民服务驶入“高速路”

  中新网徐州11月11日电 题:江苏徐州“家门口车管所”便民服务驶入“高速路”  作者 朱志庚 ...

重庆市发出今年秋冬季首次空气污染应对工作预警

  中新网重庆11月11日电 (梁钦卿)为加强秋冬季空气污染应对,重庆市生态环境局11日发出2021年第九次...

全国道德模范|深藏功名三十载 化作春蚕报乡亲——一名抗美援朝老兵的人生选择

  新华社重庆11月11日电 题:深藏功名三十载 化作春蚕报乡亲——一名抗美援朝老兵的人生选择  新...

湖南桃江“花痴”男子盗窃六盆盆栽落法网

  中新网益阳11月11日电 (王鹏 王庆庆)爱花本是修身养性、陶冶情操之事,湖南益阳市桃江县桃花江镇...

成都25位民辅警的“封闭”生活:有人“转行”送外卖 有人变身“仓鼠管理员”

  中新网成都11月11日电 题:成都25位民辅警的“封闭”生活:有人“转行”送外卖 有人变身“仓鼠管...

2022年江苏中小学:体育教师师生比将达1:220

  中新网南京11月11日电 (徐珊珊)江苏省教育厅体育卫生与艺术教育处处长张鲤鲤11日在南京表示,到202...

国内首次!成都发布公园城市银杏观叶指数

  中新网成都11月11日电 (记者 吕杨)成都市公园城市建设管理局11日正式发布公园城市银杏观叶指数,...

江苏学生体质健康监测报告:“小眼镜”“小胖墩”问题突出

  中新网南京11月11日电 (徐珊珊)11日,江苏省教育厅召开新闻发布会,发布2020年江苏省学生体质健康...

被拐17年 湖北宜昌警方助男子与家人团圆

  中新网宜昌11月11日电 (江雅丽 董晓斌)17年前,四川广安一夫妇的6岁儿子被人拐走,夫妻俩寻找多年...

福建柘荣发现1例境外输入复阳病例 四名密接者核酸检测为阴性

  中新网宁德11月11日电 (林榕生)福建宁德市柘荣县应对新型冠状病毒感染肺炎疫情工作领导小组(指挥部...

内蒙古额济纳旗达来呼布镇调整为低风险地区

  11月11日,内蒙古额济纳旗新冠肺炎防控工作指挥部发布《关于调整额济纳旗达来呼布镇风险等级的公告...

内蒙古现有本土确诊病例32例 伊金霍洛旗确诊病例清零

  (抗击新冠肺炎)内蒙古现有本土确诊病例32例 伊金霍洛旗确诊病例清零  中新网呼和浩特11月11日电...

交通陆续恢复 内蒙古通辽生产生活秩序逐步恢复正常

  中新网呼和浩特11月11日电 (记者 张林虎)11日,记者从内蒙古自治区通辽市相关部门获悉,从10日下...

X 广告
X 广告

精彩放送

选矿工技师的创新路:从废旧场“寻宝”到多技术攻关

海外传播官体验宁波“十里红妆” 赞其“让人震撼”

山西中小学幼儿园基本实现“4个100%”达标建设

走近张家界“奇峰守护者”

新华全媒+丨黑龙江黑河:他们在寒冬中战“疫”

山东日照第一批五莲县外解除隔离人员返家 将继续进行7天居家健康监测

中央气象台:未来几天我国大部天气将趋稳 东北雨雪进入尾声

云南西双版纳:巾帼护村队化身边境村寨守护者

乘客自发合力推车 “119”为“120”抢出一条急救通道

中老联合考古队探索青铜冶炼遗址奥秘 结下“深厚情谊”

黑龙江:抢修人员彻夜冒雪“破冰” 高铁列车逐步恢复运行

内蒙古通辽:交通陆续恢复 生产生活秩序逐步恢复正常

中国石油在京系统全面进入应急状态

记者手记:采访他们10分钟,我的手都快冻僵了

云南瑞丽畹町镇国防街片区调整为中风险地区

女儿与父母失散18年 黔滇两地警方携手让爱“团圆”

北京朝阳新增2名确诊病例 152名密接均已管控

听冬奥制服设计师贺阳讲述“水墨长城”灵感从何而来

纸短情长:一封道歉信“温暖”一座小城

能订货还给免费代购 便民菜车如何办成“五年老店”

买的床收货变清洁膏 小心收钱不发货的“跑路”电商

北京:在京单位加强会议活动管理 提倡视频开会

调查显示甘肃民众对战疫有信心

手机APP自动续费这个“坑”该咋填?专家支招

奔跑在无声世界的“李慢跑”:不走捷径才是最快的捷径

北京海淀1地升为中风险 确诊病例轨迹涉地铁、小学

“疫”下城市的邻里生活,不再是“相顾无言”

未售出“空置房”需交物业费吗?法院判决开发商应按合同支付

甘肃妇联发挥“联”字优势 近20万女性化身抗疫志愿者

双十一快件“爆仓”来袭 投递服务成“投诉大户”

辽宁:雪灾致640.50万头(只)畜禽死亡

中国青少年抑郁检出率超2成 学生健康体检要筛查!

清华贫困生“树洞里”装着励志之外的三重价值

我国境内首宗个人破产清算案裁定

夫妻档盗版黑手伸向《扫黑风暴》 警方:莫把盗版视商机

深圳“医保药价通”上线 医保药品价格一键可查

29岁父亲“割肝救女” 8月龄“小黄人”重获新生

452支团队参加第二届海峡两岸(福州)职工创新创业创造大赛

守护孤残儿童25年 她为2000多个孩子撑起一片天

“双十一”来临 快递强市浙江金华加强“人物并防”

江苏实施全生命周期监管将危废源头“一网打尽”

不拘一格降人才 摘下有色眼镜看“第一学历”

确诊患者曾就诊 北京东直门医院东城院区和国际部停诊

云南10日新增2例本土确诊病例

大数据分析表明昆虫多样性与碳排放密切关联

将传统“家事”上升为重要“国事” 筑好育人的起点和基点

档案人才培养现状:精通全流程的复合型人才较紧缺

“献身航空事业,不是一阵子,而是一辈子”

进博会:05后走上台前【最年轻“小叶子”仅16岁】

高山峡谷里的“背包队”再出发

Copyright ©  2015-2022 大众律师网版权所有  备案号:豫ICP备20014643号-14   联系邮箱: 905 14 41 07@qq.com