RK3588开发板(armsom-w3)之PWM实操_焦点快看

2023-06-11 20:28:13 来源: 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

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

审核编辑:汤梓红

标签:

RK3588开发板(armsom-w3)之PWM实操_焦点快看

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

06-11 20:28:13

特斯拉全新超级工厂曝光:投资超300亿

快科技6月9日消息,据海外媒体报道,特斯拉内部正考虑在西班牙建立超级

06-11 19:59:21

杨秀芹真实死因_杨秀芹-世界头条

1、秀芹是直来直去的人她虽然很普通没读过那么多书,没上过什么学 但她

06-11 19:32:08

【共同缔造安全江夏⑬】创意海报:筑牢安全防线,抓好渔业生产

【共同缔造安全江夏⑬】创意海报:筑牢安全防线,抓好渔业生产---本作

06-11 18:40:18

永远不要指望驯服的三个星座,一身反骨,生来叛逆,像狼一样自由_焦点报道

没错,他们的确会对任何一个强者低头,但另一方面,这绝对不代表着他们

06-11 17:50:38

奇门遁甲八门中哪一门不属于吉门?_奇门遁甲八门中哪一门不属于吉门

1、严格来说。2、八门之中。3、杜门是不属于吉门。本文就为大家分享到

06-11 17:02:17

当前快看:20家入围餐饮企业决出“十大名店” 厦门“名厨名菜名店”全部评出

读懂一座城,从它的“烟火气”开始——美食名店的孵化和培育,无疑是提

06-11 16:43:08

天天看热讯:国家防总启动防汛四级应急响应

近期,我国南方地区持续降雨,局地发生极端强降雨。据气象部门预测,6

06-11 16:17:02

今日热搜:东莞信用贷款的额度如何确定?_世界今热点

本文从个人信用记录、申请人的收入和负债情况、贷款用途以及银行政策等

06-11 15:57:40

观点:书法课堂进社区 笔墨飘香暖民心

为丰富辖区老年人精神文化生活,培育和发展辖区老年人书法爱好。6月8日

06-11 15:32:12

全球视点!谷歌反垄断案将如何影响人工智能技术的未来市场格局?

谷歌反垄断案将如何影响人工智能技术的未来市场格局?

06-11 14:36:34

世界焦点!官方:内斯塔出任意乙球队雷吉纳的主帅

直播吧6月10日讯雷吉纳俱乐部官方消息,内斯塔出任球队主帅。雷吉纳上

06-11 14:15:28

当前速读:英雄联盟电竞选手Uzi二度复出 加入EDG征战LPL夏季赛

封面新闻记者蔡世奇6月10日下午,上海EDG合创汽车英雄联盟分部发布公告

06-11 13:36:51

环球要闻:润际新材首发过会,公司产能扩张不能满足境内客户需求原因遭问询

乐居财经彦杰6月10日,据上交所2023年第49次审议会议结果公告,重庆润

06-11 13:13:01

直通车优惠券用不了怎么办?如何设置? 焦点简讯

​现在很多卖家都会选择淘宝平台上开店来进行发展,并且会使用直通车工

06-11 12:32:47

被低估的智能门锁,为何成为智能家居顶流?-天天热讯

“智能门锁,一个你用过就回不去的东西。”虽然上面这句话听起来很“广

06-11 11:49:31

骑马与砍杀风云三国单挑弓箭_骑马与砍杀风云三国单挑_环球微头条

1、你说清楚点。2、应该是bug吧。3、去骑马与砍杀中文网那再下过吧。本

06-11 11:27:41

抢字当头抓好夏收夏种 用心用情保护农民利益

抢字当头抓好夏收夏种用心用情保护农民利益6月5日至7日,省委副书记、

06-11 10:20:22

天天新资讯:双人小游戏大全(双人对打游戏)

1、真三国无双系列3到4虽然都是是三国的很好玩!353(就是真三国无双3

06-11 09:27:18

天天新资讯:红白党争_红白党

1、红白理事会在村党支部、村委会的领导下开展工作。以上就是【红白党

06-11 08:46:46

梦组词起名_梦组词

1、梦想,梦境,梦寐。2、梦幻,梦见,梦游。3、梦乡,梦呓,梦话。4、

06-11 08:02:37

滑动变阻器电路图接法(滑动变阻器电路图)

来为大家解答以上的问题。滑动变阻器电路图接法,滑动变阻器电路图这个

06-11 07:10:12

重点区域实施机动车国六排放标准(机动车排放标准怎么查询)_焦点关注

1、上机动车环保网,输入车型型号(注意不是车架号)、发动机型号、都能

06-11 06:32:05

东莞广告设计公司_东莞广告公司 世界关注

1、东莞市知名广告有限公司有哪些?2、1东莞市赏金猎手网络科技有限公

06-11 05:42:52

让“视”界充满爱 郴州市中医医院开展爱眼日系列活动 当前快报

让“视”界充满爱郴州市中医医院开展爱眼日系列活动红网时刻新闻6月10

06-11 05:13:46

郑裕美、李善均恐怖悬疑新电影《梦游》,坎城首映后获外媒大赞

第76届坎城国际影展影评人周受邀的恐怖电影《梦游(暂译)》,日前在电影

06-11 04:44:11

炎炎夏日,女子选择清凉舒适的吊带衫,尽显温柔气质和曼妙身姿-世界看热讯

3 5这位女子穿的是一件黑色的吊带背心,这是一件丝绸材质的丝袜内裤,

06-11 03:37:48

理财起息日 理财起息日是什么意思

本文内容是由小编为大家搜集关于理财起息日,以及理财起息日是什么意思

06-11 02:49:18

世界焦点!侠盗猎车手罪恶都市怎么调中文电脑版调键(侠盗猎车手之罪恶都市怎么调中文)

来为大家解答以上的问题。侠盗猎车手罪恶都市怎么调中文电脑版调键,侠

06-11 02:51:34

高考成绩何时可查?实用信息了解一下-热推荐

■“免试入学”骗局在招生录取诈骗中,最常见的就是不法分子打着招生机

06-11 01:57:57

游戏陪玩行业乱象调查:不少未成年接单,线下陪玩安全难保障|快消息

“学生,陪玩游戏,周末接单”“线下陪玩,超短裙、黑丝,你想让我怎么

06-11 01:36:49

将歪心思打到人民币上,两男子用假币被拘留 微动态

将歪心思打到人民币上,两男子用假币被拘留---为了发财,竟然将歪心思

06-11 01:08:38

江苏扬州:深化“揭榜挂帅”助企专项行动 发布207项企业技术需求|每日消息

柳鑫许婷 科技日报记者 王怡6月9日,2023年扬州市科技人才“揭榜挂帅

06-11 00:11:57

《FF7重生》战斗UI有所调整:极限技能或可以储存

《最终幻想7重生》在昨天的夏日游戏节上公布了最新的员工视频,其中包

06-10 23:07:16

全球看热讯:3周以后,四大生肖存款翻五番,事业爱情双收,富贵不差钱

生肖猴的人重逢挚爱,为自己积累福报,财富就会增加,财富也不断累积且

06-10 23:09:58

欧阳靖维护欧阳娜娜:跟她合作绝对是我的荣幸

欧阳娜娜与欧阳靖在《中国说唱巅峰对决》上进行合作表演,有网友评论道

06-10 21:57:57

口腔材料app(口腔材料网)

1、搜齿科材料网进入地狗官方网站我觉得错仅供参考哈望采纳。本文就为

06-10 21:11:48

梅西不回,他却偷着乐!索3000万年薪+提7大要求,球王错信了他

在梅西宣布不回归巴萨,前往了迈阿密国际效力之后,大家应该也发现了巴

06-10 20:45:17

e90 320i(e90) 焦点快报

来为大家解答以上的问题。e90320i,e90这个很多人还不知道,现在让我们

06-10 19:55:14

自动驾驶的“奇点”时刻将近?余承东“剧透”这一时点

《科创板日报》6月10日讯(编辑邱思雨)高阶自动驾驶技术的商业化进程

06-10 18:05:46

环球观察:财联社创投通:本周一级市场92起融资环比降7.07% 鑫华半导体完成10亿人民币融资

《科创板日报》6月10日讯(研究员梁又匀顾瑞雪段依尘王锋)据财联社创

06-10 17:17:26

陕西西安推动“十里沣河”文旅深度融合 古老沣河涌动新活力

位于“十里沣河”文旅带的昆明池七夕公园。以上图片均为席荣轩摄(人民

06-10 16:25:34

力挺!小波特低迷场均7分 马龙:他不会掉出轮换 绝不质疑他 热议

北京时间6月10日,NBA总决赛G4即将开打,掘金将继续客场挑战热火。赛前

06-10 15:25:34

剑川县气象台发布地质灾害气象风险Ⅲ级预警【2023-06-10】-动态焦点

剑川县气象局、剑川县自然资源局2023年6月10日10时30分联合发布地质灾

06-10 15:34:28

国宝画重点丨上天入海,到处“出差”!这件宝贝可不得了

2023年6月10日是“文化和自然遗产日”今年的主场城市活动在四川成都举

06-10 14:18:40

高质量发展调研行 | 在智慧港口见证大湾区经济活力——广州南沙港走访一线见闻

提到港口,你会想到什么?头戴安全帽的工人在操作吊机,还是一辆辆卡车

06-10 12:56:15

4个工具,让 ChatGPT 如虎添翼!

ChatGPT很好用,其核心是prompt的运用,其回答质量很大程度取决于你的

06-10 11:49:56

【全球速看料】广西启动防汛Ⅳ级应急响应

原标题:广西启动防汛Ⅳ级应急响应  记者从广西壮族自治区防汛抗旱指

06-10 08:10:22

当前热议!esse menthol薄荷价钱_esse薄荷味多少钱一包

问题:大家好,我想问一个问题,esse薄荷味多少钱一包?我的朋友之前给

06-10 05:35:32

航行警告!渤海潍坊港实弹射击 新消息

据中国海事局网站消息,潍坊海事局发布航行警告,6月10日6时至20时,渤

06-09 20:37:32

特斯拉全新超级工厂曝光:投资超300亿
杨秀芹真实死因_杨秀芹-世界头条
【共同缔造安全江夏⑬】创意海报:筑牢安全防线,抓好渔业生产
永远不要指望驯服的三个星座,一身反骨,生来叛逆,像狼一样自由_焦点报道
奇门遁甲八门中哪一门不属于吉门?_奇门遁甲八门中哪一门不属于吉门
当前快看:20家入围餐饮企业决出“十大名店” 厦门“名厨名菜名店”全部评出
天天看热讯:国家防总启动防汛四级应急响应
今日热搜:东莞信用贷款的额度如何确定?_世界今热点
观点:书法课堂进社区 笔墨飘香暖民心
全球视点!谷歌反垄断案将如何影响人工智能技术的未来市场格局?
世界焦点!官方:内斯塔出任意乙球队雷吉纳的主帅
当前速读:英雄联盟电竞选手Uzi二度复出 加入EDG征战LPL夏季赛
环球要闻:润际新材首发过会,公司产能扩张不能满足境内客户需求原因遭问询
直通车优惠券用不了怎么办?如何设置? 焦点简讯
被低估的智能门锁,为何成为智能家居顶流?-天天热讯
骑马与砍杀风云三国单挑弓箭_骑马与砍杀风云三国单挑_环球微头条
抢字当头抓好夏收夏种 用心用情保护农民利益
天天新资讯:双人小游戏大全(双人对打游戏)
天天新资讯:红白党争_红白党
梦组词起名_梦组词
滑动变阻器电路图接法(滑动变阻器电路图)
重点区域实施机动车国六排放标准(机动车排放标准怎么查询)_焦点关注
东莞广告设计公司_东莞广告公司 世界关注
让“视”界充满爱 郴州市中医医院开展爱眼日系列活动 当前快报
郑裕美、李善均恐怖悬疑新电影《梦游》,坎城首映后获外媒大赞
炎炎夏日,女子选择清凉舒适的吊带衫,尽显温柔气质和曼妙身姿-世界看热讯
理财起息日 理财起息日是什么意思
世界焦点!侠盗猎车手罪恶都市怎么调中文电脑版调键(侠盗猎车手之罪恶都市怎么调中文)
高考成绩何时可查?实用信息了解一下-热推荐
游戏陪玩行业乱象调查:不少未成年接单,线下陪玩安全难保障|快消息
将歪心思打到人民币上,两男子用假币被拘留 微动态
江苏扬州:深化“揭榜挂帅”助企专项行动 发布207项企业技术需求|每日消息
《FF7重生》战斗UI有所调整:极限技能或可以储存
全球看热讯:3周以后,四大生肖存款翻五番,事业爱情双收,富贵不差钱
欧阳靖维护欧阳娜娜:跟她合作绝对是我的荣幸
口腔材料app(口腔材料网)
梅西不回,他却偷着乐!索3000万年薪+提7大要求,球王错信了他
e90 320i(e90) 焦点快报
自动驾驶的“奇点”时刻将近?余承东“剧透”这一时点
环球观察:财联社创投通:本周一级市场92起融资环比降7.07% 鑫华半导体完成10亿人民币融资
陕西西安推动“十里沣河”文旅深度融合 古老沣河涌动新活力
力挺!小波特低迷场均7分 马龙:他不会掉出轮换 绝不质疑他 热议
剑川县气象台发布地质灾害气象风险Ⅲ级预警【2023-06-10】-动态焦点
国宝画重点丨上天入海,到处“出差”!这件宝贝可不得了
高质量发展调研行 | 在智慧港口见证大湾区经济活力——广州南沙港走访一线见闻
4个工具,让 ChatGPT 如虎添翼!
【全球速看料】广西启动防汛Ⅳ级应急响应
当前热议!esse menthol薄荷价钱_esse薄荷味多少钱一包
航行警告!渤海潍坊港实弹射击 新消息
Pomelo Care获得3300万美元种子轮和A轮融资_当前速读
X 广告
资讯
X 广告

Copyright ©  2015-2023 港澳畜牧网版权所有  备案号:京ICP备2023022245号-31   联系邮箱:435 226 40 @qq.com