本篇开始对STM32的GPIO在实际开发设计中的使用配置和技巧进行探讨,可以先去回顾下之前介绍的GPIO的相关理论基础知识包括基本结构,工作模式和寄存器原理。
了解过STM32的GPIO相关的理论知识,这样在应用GPIO开发过程中,能更好的理解GPIO的特点,应用起来会更加的得心应手。
(资料图片仅供参考)
后续将从以下图1中所示的几个方面对GPIO应用设计中的步骤展开介绍。本篇先介绍GPIO的基本API函数定义,配置初始化的流程,以及使用技巧;针对将GPIO的引脚用于外部中断的功能将作为单独的一篇进行详细的讨论介绍。
图1 GPIO应用设计
二、API函数STM32有多种类型的库,本节所介绍的STM32的GPIO函数接口是STM32标准库的函数接口,接口总共分为4种类型,如图2所示。
图2 GPIO库函数接口分类
1、关键参数在详细介绍各个API函数接口功能之前,我们需要对函数接口中使用到的关键的几个参数进行分析。
(1)、GPIO_TypeDef* GPIOx
这个参数是用于指定需要具体的GPIO端口号定义,参数的范围为GPIOA~GPIOK。
(2)、GPIO_InitTypeDef* GPIO_InitStruct
这个参数是GPIO端口需要初始化的功能参数的结构体指针,下面我们看看这个结构体的定义。
1 typedef struct2 {3 uint32_t GPIO_Pin; //GPIO端口的引脚4 GPIOMode_TypeDef GPIO_Mode; //GPIO的端口模式 5 GPIOSpeed_TypeDef GPIO_Speed; //GPIO的输出速度频率6 GPIOOType_TypeDef GPIO_OType; //GPIO输出时的类型7 GPIOPuPd_TypeDef GPIO_PuPd; //GPIO上下拉电阻设置 8 }GPIO_InitTypeDef;
(a)、GPIO端口的引脚:可选范围为GPIO_Pin_0~GPIO_Pin_15,也可以选所有引脚GPIO_Pin_All。
(b)、GPIO的端口模式:用于设置GPIO的端口模式,可选的端口模式如下。
1 typedef enum2 {3 GPIO_Mode_IN = 0x00, //普通IO口输入4 GPIO_Mode_OUT = 0x01, //普通IO口输出5 GPIO_Mode_AF = 0x02, //管脚复用功能6 GPIO_Mode_AN = 0x03 //模拟输入,用于ADC功能7 }GPIOMode_TypeDef;
(c)、GPIO的输出速度频率:当GPIO引脚用于普通功能输出或复用功能输出时,GPIO的输出速度频率,可选的输出速率如下。
1 typedef enum2 {3 GPIO_Low_Speed = 0x00, //GPIO_Speed_2MHz4 GPIO_Medium_Speed = 0x01, //GPIO_Speed_25MHz5 GPIO_Fast_Speed = 0x02, //GPIO_Speed_50MHz6 GPIO_High_Speed = 0x03 //GPIO_Speed_100MHz7 }GPIOSpeed_TypeDef;
速度高的IO耗电大、噪声也大,速度低的IO耗电小、噪声也小。使用合适的速度可以降低功耗和噪声。高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能,也可以降低功耗。当然如果要输出较高频率的信号,但却选用了较低频率的速度,很可能会得到失真的输出信号。关键是GPIO的引脚速度跟应用匹配。
(d)、GPIO输出时的类型:当GPIO引脚用于普通功能输出或复用功能输出时,可选择设置的GPIO的输出结构类型有如下。
1 typedef enum2 {3 GPIO_OType_PP = 0x00, //推挽结构4 GPIO_OType_OD = 0x01 //开漏结构5 }GPIOOType_TypeDef;
推挽输出时,可以输出高或者低电平;开漏输出时,如果要输出高电平,则需要在芯片内部配置上拉电阻(弱上拉)或者在芯片IO外部连接上拉电阻。
(e)、GPIO上下拉电阻设置:可以为GPIO端口的引脚选择设置是否具备带上拉或下拉电阻功能。
1 typedef enum2 {3 GPIO_PuPd_NOPULL = 0x00, //无上拉或者下拉4 GPIO_PuPd_UP = 0x01, //带上拉电阻5 GPIO_PuPd_DOWN = 0x02 //带下拉电阻6 }GPIOPuPd_TypeDef;
STM32芯片GPIO的上拉电阻和下拉电阻最小值,典型值和最大值如下:
(3)、uint16_t GPIO_PinSource和uint8_t GPIO_AF
这两个参数都是GPIO端口引脚需要配置成复用功能引脚用到的参数。
GPIO_PinSource:指需配置的复用功能引脚源,可选范围GPIO_PinSource0~GPIO_PinSource15。
GPIO_AF:指该引脚具体需要配置的功能,具体配置功能要看实际应用需求,例如需要配置成SPI1功能的引脚,那么就选GPIO_AF_SPI1。
2、函数接口下面就对具体的函数接口进行逐个的介绍。由于使用的是STM32的标准库,GPIO 相关的函数及配置定义和可以调用的接口放置在官方提供的标准库文件 stm32fxx_gpio.c和头文件 stm32fxx_gpio.h 文件中。
(1)、void GPIO_DeInit(GPIO_TypeDef* GPIOx);
作用:将GPIO端口设置成初始的默认状态,相当于复位GPIO端口,默认的状态为输入浮空的状态。
举例:GPIO_DeInit(GPIOA),将GPIOA端口所有引脚复位到默认状态。
(2)、void GPIO_Init(GPIO_TypeDef* GPIOx,GPIO_InitTypeDef* GPIO_InitStruct);
作用:将GPIO端口引脚进行功能状态初始化。
举例:将GPIOA的pin1引脚设为普通输出功能,IO驱动速率可达50MHz,推挽模式,带上拉电阻。
1 gpio_InitStruct.GPIO_Pin = GPIO_Pin_1;2 gpio_InitStruct. GPIO_Mode = GPIO_Mode_OUT;3 gpio_InitStruct.GPIO_Speed = GPIO_Fast_Speed;4 gpio_InitStruct. GPIO_OType = GPIO_OType_PP;5 gpio_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;6 GPIO_Init(GPIOA, &gpio_InitStruct);
(3)、void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);
作用:获取GPIO端口的所有引脚的一个默认状态,可应用于某个GPIO端口上。该函数内部默认的引脚默认状态如下。
1 GPIO_InitStruct->GPIO_Pin = GPIO_Pin_All;2 GPIO_InitStruct->GPIO_Mode = GPIO_Mode_IN;3 GPIO_InitStruct->GPIO_Speed = GPIO_Speed_2MHz;4 GPIO_InitStruct->GPIO_OType = GPIO_OType_PP;5 GPIO_InitStruct->GPIO_PuPd = GPIO_PuPd_NOPULL;
举例:使用gpio_InitStruct快速获取到了引脚的默认状态值。
1 GPIO_StructInit(&gpio_InitStruct);
(4)、void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
作用:将指定GPIO端口引脚当前的配置进行锁定,锁定后该引脚配置不能被修改,只有等下次MCU复位锁定才能释放。
举例:锁定GPIOA的管脚pin1配置不被修改。
1 GPIO_PinLockConfig(GPIOA, GPIO_Pin_1);
(5)、uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
作用:为当GPIO的相应管脚配置成输入时,读取该GPIO端口下的相应引脚输入电平值。
举例:读取GPIOA的pin1引脚输入电平值。
1 status = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1);
(6)、uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
作用:为当GPIO配置成输入时,读取该GPIO端口下的所有引脚输入电平值。
举例:读取GPIOA端口所有引脚的输入电平值。
1 status = GPIO_ReadInputData(GPIOA);
(7)、uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
作用:为当GPIO的相应管脚配置成输出时,读取该GPIO端口下的相应引脚输出电平值。
举例:读取GPIOA的pin1引脚输出电平值。
1 status = GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_1);
(8)、uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
作用:为当GPIO配置成输出时,读取该GPIO端口下的所有引脚输出电平值。
举例:读取GPIOA端口所有引脚的输出电平值。
1 status = GPIO_ReadOutputData(GPIOA);
(9)、void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
作用:置位相应GPIO端口引脚的电平值。
举例:将GPIOA的pin1管脚电平置为1。
1 GPIO_SetBits(GPIOA, GPIO_Pin_1);
也可以用于多个引脚电平的置位。
1 GPIO_SetBits(GPIOA, GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);
(10)、void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
作用:清零相应GPIO端口引脚的电平值。
举例:将GPIOA的pin1管脚电平置为0。
1 GPIO_ResetBits(GPIOA, GPIO_Pin_1);
也可以用于多个引脚电平的清零。
1 GPIO_ResetBits(GPIOA, GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);
(11)、void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
作用:将GPIO端口的指定管脚电平置1或置0。
举例:将GPIOA的pin1管脚电平置为1。
1 GPIO_WriteBit(GPIOA, GPIO_Pin_1, 1);
也可以用于多个引脚电平操作。
1 GPIO_WriteBit(GPIOA, GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3, 1);
(12)、void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
作用:将GPIO端口的所有管脚电平置1或置0。
举例:将GPIOA端口的所有管脚电平置为1。
1 GPIO_Write(GPIOA, 1);
(13)、void GPIO_ToggleBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
作用:翻转指定GPIO引脚的输出电平,即0变为1,1变为0。
举例:翻转GPIOA的pin1管脚电平值。
1 GPIO_ToggleBits(GPIOA , GPIO_Pin_1);
(14)、void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF);
作用:将GPIO的指定管脚配置成复用功能管脚。
举例:将GPIOA的pin9管脚配置成串口USART1的功能管脚。
1 GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);三、配置流程
配置流程主要在实际的驱动配置中对GPIO进行初始化的操作,根据实际项目应用开发中的芯片GPIO引脚的定义,进行合理的配置。图3所示为GPIO的基本配置操作流程。
图3 GPIO配置流程
(1)、使能对应GPIO的时钟
在配置GPIO的开始,首先需要将对应的GPIO模块的时钟打开,这样才能为GPIO工作提供动力源,因此只有先将GPIO的时钟打开才能使GPIO正常的工作。
关于STM32芯片内部整体的时钟系统,可以回顾之前明解STM32时钟系统的文章介绍。STM32的GPIO模块是挂载在芯片内部AHB1总线(AHB:高级高性能总线)上的外设,因此就需要打开GPIO在AHB1总线上对应的时钟。AHB1总线上的外设时钟开关在STM32提供的标准库函数中通过函数 RCC_AHB1PeriphClockCmd ()来实现的。例如调用:
1 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
这样就将GPIOA的时钟打开,也可以同时打开多个GPIO端口的时钟:
1 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB, ENABLE);
(2)、引脚功能配置
接下来对GPIO引脚的配置是需要根据实际的项目应用要求,根据各个芯片管脚的定义来对引脚的功能进行合理的配置,主要是根据引脚是使用成普通IO输出还是输入,复用功能还是模拟管脚来调用GPIO_Init()函数进行配置。举例说明:
用于普通IO输出时:
1 GPIO_WriteBit(GPIOA, GPIO_Pin_1, 1);//向引脚输出0或1电平,在GPIO_Init前调用2 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;//设置使用引脚3 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通IO输出4 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//根据实际应用配置输出结构类型5 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//根据实际应用配置输出速度6 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//根据实际应用配置上拉或下拉电阻7 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化PA1引脚
需要注意的是,初始化输出电平时,需要先调用写引脚电平接口,再做初始化操作,这是因为GPIO_WriteBit是将输出的值写入寄存器输出置位/复位寄存器BSRR,BSRR寄存器复位值是0,GPIO_Init相当于将GPIO引脚初始化完打开输出开关。如果需要输出的是高电平,GPIO_WriteBit在前,GPIO_Init在后相当于在没打开开关之前就将1在BSRR中放置好,GPIO_Init将开关一打开就可以输出高电平;如果GPIO_Init在前,GPIO_WriteBit在后,GPIO_Init完会将BSRR中的0先输出,过了一个函数指令周期后调用GPIO_WriteBit才输出高电平,因此若驱动时序对函数指令周期敏感的外围器件时,可能带来驱动时序问题!
用于普通IO输入时:
1 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;//设置使用引脚2 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//普通IO输入3 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//根据实际应用配置输出速度4 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//根据实际应用配置上拉或下拉电阻5 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化PA1引脚
用于复用功能时:
在管脚应用于复用功能时,需要调用GPIO_PinAFConfig()接口来将管脚配置成具体的外设管脚。
1 GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1); //PA9 复用为 USART12 GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1); //PA10复用为USART13 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; //设置使用引脚4 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功能5 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //根据实际应用配置输出速度6 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //根据实际应用配置输出结构类型7 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //根据实际应用配置上拉或下拉电阻8 GPIO_Init(GPIOA,&GPIO_InitStructure); //初始化PA9和PA10引脚
用于模拟管脚时:
1 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//PA5 通道 52 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//模拟输入3 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;//不带上下拉4 GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化PA5引脚
当STM32需要进行AD(模数)转换采样时,需要把引脚设置为模拟输入模式,模拟输入模式下,不需要连接上拉和下拉电阻,因为GPIO用于模拟功能时,引脚的上、下拉电阻是不起作用的。这个时候即使在配置了上拉或下拉电阻,也不会影响到模拟信号的输入。
(3)、对GPIO引脚进行操作
在初始化完GPIO引脚的具体配置后,就可以对GPIO引脚进行具体的操作使用了。
用于普通IO输出时:
可以调用相关GPIO相关写操作接口对引脚进行输出0或者1的操作:GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit、GPIO_ToggleBits。
也可以调用相关GPIO读接口对输出类型的GPIO进行读取引脚电平的操作GPIO_ReadOutputDataBit。
用于普通IO输入时:
可以调用相关GPIO读接口对输入类型的GPIO进行读取引脚电平的操作:GPIO_ReadInputDataBit。
用于复用功能时:
需要根据实际使用时的具体外设配置,接着初始化相应的片上外设后,调用具体的外设信号读或者写接口进行信号的读写操作。
用于模拟管脚时:
由于模拟管脚功能是用芯片上的ADC对芯片外部的模拟信号进行采样,因此还需要初始化完ADC外设后,调用ADC外设采样的接口进行信号读取。
四、使用技巧在日常程序开发调试的过程中,可以简单有效的利用GPIO驱动输出高低电平来进行辅助的测试及验证工作。下面介绍几个较为常用的使用场景,如果有其它可以利用GPIO的方法和技巧,也请大家积极留言,我们一起探讨。
(1)、在boot程序阶段使用IO翻转输出信号的频率可以和APP程序阶段使用IO翻转输出信号的频率相异,通过使用示波器测量波形,用于区分程序是运行在boot程序阶段还是APP程序阶段,即不同程序阶段。
(2)、在使用定时器中断的时候,为了确保定时器时基设置的正确性,测试是可以定时器中断中增加IO口信号翻转逻辑,通过使用示波器测量翻转的频率来测试验证定时器中断的周期。
1 void TIM1_IRQHandler(void) //定时器 1 中断服务函数2 {3 if(TIM_GetITStatus(TIM1,TIM_IT_Update)==SET) //溢出中断4 {5 GPIO_ToggleBits(); //IO口信号翻转操作逻辑,用于验证定时器中断频率6 }7 TIM_ClearITPendingBit(TIM1,TIM_IT_Update); //清除中断标志位8 }
(3)、在不同的程序段中使用多个IO,输出高电平,通过示波器测量IO口之间输出高电平的间隔,可以确定两个程序段之间运行的准确时间。
(4)、在板卡上没有LED进行闪烁指示的情况或没有使用外部看门狗芯片的情况下,为了确认程序是否仍然在正常运行,需要留出一个IO口,用于翻转高低电平输出,后续就可以用示波器测量该信号的有无来判断程序是否死机。
(5)、在没有调试打印程序信息的串口时,查找死机问题的时候,放置不同的IO输出高电平的在不同的程序段,这样类似的进行插桩驱动测试,通过示波器测量信号,可以大体的定位在程序运行的哪一块发生了死机的问题。
(6)、在测试验证阶段,可以将某个IO引脚配置成输入模式,利用外部给的激励信号,在程序中判断读到的信号电平的高低状态,去作为逻辑判断条件进行一些代码段的验证测试。
五、总结本篇主要主要是对STM32的GPIO在日常基本应用开发中的具体的操作配置和使用方法进行了说明,包括API功能函数的定义,驱动初始化的配置流程以及一些利用GPIO操作的相关技巧,后续将对GPIO使用成外部中断时进行详细的介绍。
更多技术内容和书籍资料获取,入群技术交流敬请关注“明解嵌入式”
标签:
上一篇 : 最新:治鸡眼最快最好的方法_治鸡眼
下一篇 : 最后一页
一、前言本篇开始对STM32的GPIO在实际开发设计中的使用配置和技巧进行探讨,可以先去回顾下之前介绍的GPIO
04-26 21:39:09
1、蜂胶对鸡眼的效果是非常好的,而且方法也非常的简单,只需要准备蜂胶适量,然后在每晚热水泡洗脚了以后
04-26 20:52:44
矩子科技(300802)04月26日在投资者关系平台上答复了投资者关心的问题。
04-26 20:18:13
1、土壤豆瓣绿喜欢疏松肥沃透水比较良好的土壤,最好使用壤土、园土、河沙,混合以后的配置土,避免土壤过
04-26 19:23:47
“距离上一次在主场看你的中超比赛,已经过去了3464天。”按照惯例,中超联赛官方社交账号在赛后梳理着...
04-26 18:57:09
长海星级酒店项目签约落户云梦
04-26 18:09:26
1、汉语拼音:zhuan汉字笔划:15偏旁部首:饣书写笔顺:撇折折折横折折横折横竖竖横撇捺部首笔划:3
04-26 17:59:47
台湾地区《经济日报》4月26日消息,供应链传出,苹果增加供应链阵容,纳入和硕及立讯精密成为iPhone15系列
04-26 17:15:26
近年来,青岛市南区全力打造一流法治化营商环境,厚植企业发展沃土,为区域经济社会高质量发展提供坚强保障
04-26 17:02:20
今日,国外游戏论坛发布调查:你认为《塞尔达传说:王国之泪》会给玩过前作的玩家奖励或者存档继承吗?超90
04-26 16:32:46
4月邻二甲苯价格涨幅放缓据生意社商品行情分析系统,截止4月26日邻二甲苯价格8800元 吨,较上月末3月31日邻
04-26 16:01:20
开年一季度,从商贸市场到制造工厂,从寻常巷陌到热门景区,热闹的景象翩然回归,流动的中国生机勃勃。日前
04-26 15:52:33
4月25日,谢娜现身机场,并一路对跟拍粉丝聊天,趁机回应了助理打手机事件。前几天,谢娜和张杰现身机场,
04-26 15:03:26
交易商品牌 产地交货地最新报价氯磺酰基异氰酸酯 含量99 5%常州市天恒工贸有限公司国产山东省 潍坊市32000
04-26 14:51:23
1、RFID射频识别是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作
04-26 14:19:38
为进一步提升社工队伍综合素养和管理能力,提高居委会干部职业化、专业化、规范化水平,4月25日至4月26日,
04-26 13:42:39
“但在现行的软件市场中,几乎找不到符合国茂股份需求的物流管理软件”,孔东华对钛媒体APP说道,“我们...
04-26 13:09:36
4月25日晚,蕾奥规划发布2022年年报。数据显示,蕾奥规划2022年实现营收4 42亿元,其中研发投入金额为0 53
04-26 12:16:15
4月26日上午,省妇女联合会召开干部大会,省委组织部分管日常工作的副部长徐忠同志出席会议,宣布省委关于
04-26 11:46:49
甘肃省政协经济委员会原副主任陈春明受贿、国有公司人员滥用职权、国有公司人员失职、巨额财产来源不明、洗
04-26 11:14:42
民宿火爆、玩偶走俏……这只“萌兽”带来可观经济效益
04-26 10:58:25
4月23日,清冷的早晨,辽阳农产品加工产业暨冷链物流建设项目现场却一片“火热”——项目建设正全速推进...
04-26 10:25:44
顶端新闻记者曾令统“我只知道我家里有9位数,我想混哪个平台就混哪个平台,想在哪个国家就在哪个国家。...
04-26 10:23:06
文|拆东墙编辑|布泉在阅读此文前,诚邀您点击一下“关注”,既方便您进行讨论与分享,又给您带来不一样...
04-26 10:04:24
4月25日,媒体记者、与会嘉宾在茶文化节新闻发布会后品尝、了解高山白茶。当日,第二十二届八大处中国园林
04-26 09:10:51
4月24日,在孟加拉国达卡,孟加拉国新总统穆罕默德·谢哈布丁·楚普(左)出席就职仪式。孟加拉国新总统...
04-26 09:03:28
据报道,苹果公司正在开发人工智能驱动的健康指导服务和跟踪情绪的新技术,这是其通过健康功能锁定用户的最
04-26 08:22:59
长沙铁路公安处长沙站派出所连续为多名旅客找回遗失物。红网时刻新闻4月25日讯(记者张兴莎通讯员吕颖)...
04-26 07:39:51
理想汽车将从4月24日起,按照顺序向理想L9、理想L8以及理想L7的用户推送OTA4 4版车机系统。新版本车机系统
04-26 06:44:33
美国消费者信心指数降至7月以来最低水平,因对经济前景的看法更为悲观。周二公布的数据显示,世界大型企业
04-26 05:56:11
创胜集团-B(06628)发布公告,于2023年4月25日,该公司斥资5 37万港
04-26 04:42:47
今年4月5号,贝嫂维多利亚在Ins发布了一条和丈夫跳萨尔萨舞(Salsa)的视频。▼画面里,虽然二人都年近50岁
04-26 01:22:45
中国日报4月25日电(记者赵磊)今年的4月24日是第八个“中国航天日”。近期,航天科工空间工程发展有限...
04-25 22:52:38
纵览客户端讯(通讯员傅新春燕赵都市报纵览新闻记者李家伟)4月24日,沧州市车站小学举办传统蜜丸制作中医
04-25 21:10:17
4月25日晚间沪深上市公司重大事项公告最新快递
04-25 20:40:49
本次为大家带来上古卷轴OL消减生命雕文怎么制作的详细讲解,感兴趣的玩家们千万不要错过!《上古卷轴OL》
04-25 20:10:17
格隆汇4月25日丨香山股份发布第一季度报告,营业收入12 15亿元,同比增长11 06%,净利润3543 7万元,同比增
04-25 19:39:17
你们好,最近小未来发现有诸多的小伙伴们对于大蒜苗图片大全大图,大蒜苗图片这个问题都颇为感兴趣的,今天
04-25 19:09:36
足球地理丨北极圈诞生的FM新星,正经受现实拷打
04-25 18:30:37
一个精神病医院的男护工,工作长达7年的时间患上了重度抑郁,为此表示不会辞职。抑郁症是属于比较常见的一
04-25 17:54:35
传化智联拟发不超41亿可转债去年净利降6成拟10派1元
04-25 17:24:42
“五一”假期临近,住宿餐饮旅游等消费需求将集中释放。4月25日,北京市市场监管局向全市经营者及相关单...
04-25 17:14:30
随着新一轮技术革命不断深入,全球经济结构面临重塑,数字技术驱动的广电产业变革已走过前半程,正步入深度
04-25 16:55:09
直播电商赛道一向瞬息万变,2023年还未行至5月,赛道内便涌现了一系列大事件。3月31日,在交个朋友迎来三周
04-25 16:22:57
正值第37个全国预防接种宣传日(第12个世界免疫周),进口二价HPV疫苗9-14岁女孩二剂次接种程序正式在广西
04-25 15:56:53
Igorslab一直在与业内人士讨论GeForceRTX4070发布后环境。他断言,销售低迷已足以引发Nvidia与其A
04-25 15:18:39
4月25日,第二届广州 琶洲算法大赛正式启动,百度飞桨(广州)人工智能产业赋能中心正式落成。琶洲算法库也
04-25 15:08:03
上海亿大口腔整形门诊部上海亿大口腔整形门诊部成立于2013年,位于上海市静安区万航渡路83号金航大厦16楼。
04-25 14:36:54
《惊天救援》北大路演遭差评片方不服起诉主旋律电影不接受批评,路演,主旋律,灾难片,动作片,惊天救援,一部电影
04-25 14:04:07
【本文来自《淄博烧烤刷屏,我开始替新疆着急……》评论区,标题为小编添加】新疆的特色小吃可不止羊肉...
04-25 13:44:59
一、前言本篇开始对STM32的GPIO在实际开发设计中的使用配置和技巧进行探讨,可以先去回顾下之前介绍的GPIO
2023-04-26
1、蜂胶对鸡眼的效果是非常好的,而且方法也非常的简单,只需要准备蜂胶适量,然后在每晚热水泡洗脚了以后
2023-04-26
矩子科技(300802)04月26日在投资者关系平台上答复了投资者关心的问题。
2023-04-26
1、土壤豆瓣绿喜欢疏松肥沃透水比较良好的土壤,最好使用壤土、园土、河沙,混合以后的配置土,避免土壤过
2023-04-26
“距离上一次在主场看你的中超比赛,已经过去了3464天。”按照惯例,中超联赛官方社交账号在赛后梳理着...
2023-04-26
Copyright © 2015-2022 亚太纤维网版权所有 备案号:沪ICP备2020036824号-11 联系邮箱: 562 66 29@qq.com