当前位置: 首页 > news >正文

stm32-定时器输出比较PWM

目录

一、输出比较简介

二、PWM简介

三、输出比较模式实现

1.输出比较框图(以通用定时器为例)

2.PWM基本结构

四、固件库实现

1.程序1:PWM呼吸灯

 2.程序2:PWM驱动直流电机

3.程序3:控制舵机 


一、输出比较简介

6427569e13dc4058bc4108d2252324d8.png

死区生成和互补输出一般用于对电机的控制  

二、PWM简介

217520c3ee6d4309a335940969b560c2.png

 惯性系统:即要能使人眼产生视觉停留的系统

三、输出比较模式实现

4df2aa6225314807bd9e305e6156d983.png

1.输出比较框图(以通用定时器为例)

b20f276000924d83b123d9bcd4402f15.pngd5b1cc384dcb4bff8e3172aa26bb5cdb.pngebc01af3e04148d988d242ccd5663b17.png 

 高级定时器比通用定时器多了个互补输出和死区生成852fe456c92146febbc5a922cc620899.png

如右图,两个mos管构成了推挽电路,上管导通下管关闭输出高电平,下管导通上管关闭输出低电平,两管都关闭为高阻态,两管都导通为短路,会对元器件造成损伤,所以两管不能同时导通

互补输出:当单片机要控制这个电路时,就需要两个输出端口,且二者电平要相反,即互补,而这里OC1和OC1N就是互补的两个端口,即互补输出

死区发生器:但是若在上管关闭的瞬间下管就导通,很可能由于器件的不理想而出现上下管都导通的情况,为了避免这种情况发生,于是又是死区发生器,即他可以在上管关闭后延迟一段时间再导通下管,避免同时导通

2.PWM基本结构

10788d1f0c4c4fc9bf92ee1f9302d992.png

1e024aa74b8a49988ef208aef673b9f7.png

四、固件库实现

1.程序1:PWM呼吸灯

1.我使用的是TIM3的CH2的重定义引脚PB5,所以要打开AFIO时钟

2.开启TIM3和GPIO的时钟

3.初始化GPIO结构体。注意:要记得使用库函数进行重定义

4.选择TIM3的时钟输入,可以为内部时钟,外部时钟模式1和2,

        外部时钟模式1:来源可以是ITR(其他定时器,多用于定时器级联),可以是ETR(外部时  钟),可以是CH1引脚的边沿,CH1引脚和CH2引脚(多用于输入捕获测频率)

        外部时钟模式2:ETR的触发控制模式

5.初始化TIM3结构体--配置PSC,ARR,计数模式,等等

6.初始化OC结构体--PWM模式选择,CCR,输出ref的有效电平

7.定时器使能

//使用TIM3的通道2的重定义引脚PB5-指南者上面是红灯
//我们配置
void PWM_Config()
{//首先开启GPIO时钟//开启AFIO时钟,因为用到了重定义RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);//开启定时器的时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//重定义引脚//选择部分重定义GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);//初始化GPIO结构体-PB5-输出比较GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_AF_PP;//复用推挽,手册可看GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;GPIO_Init(GPIOB,&GPIO_InitStruct);//选择TIM3的时钟输入TIM_InternalClockConfig(TIM3);//我们直接使用内部时钟//配置TIM结构体TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;TIM_TimeBaseInitStruct.TIM_Prescaler = 72-1;//PSCTIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;//计数模式TIM_TimeBaseInitStruct.TIM_Period = 100-1;//ARRTIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;//输入滤波器的分频TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0;//重复计数器,只有高级定时器才有TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStruct);//初始化OC结构体TIM_OCInitTypeDef TIM_OCInitStruct;TIM_OCStructInit(&TIM_OCInitStruct);//先赋初值,因为我们没有把结构体配置完全TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1;//模式选择-PWM1TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;//输出使能TIM_OCInitStruct.TIM_Pulse = 0;//CCR,这里我们不配置CCR的值,后面用一个库函数直接在主函数            里面配置,实现呼吸灯TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High;//输出ref极性,选择有效电平,即ref有效时输出高电平//TIM_OCInitStruct.TIM_OCNPolarity = ;//TIM_OCInitStruct.TIM_OCIdleState = ;//TIM_OCInitStruct.TIM_OCNIdleState = ;//TIM_OCInitStruct.TIM_OutputNState = ;TIM_OC2Init(TIM3,&TIM_OCInitStruct);//启动定时器TIM_Cmd(TIM3,ENABLE);}void PWM_SetCompare2(uint16_t Compare)
{TIM_SetCompare2(TIM3,Compare);
}
main.c#include "stm32f10x.h"   // Device header
#include "bsp_led.h"
#include ".\tim\bsp_tim.h"extern uint16_t Num;//定时器都是16位的int i;
void Delay(u32 i)
{u32 temp;SysTick->LOAD=9000*i;      //设置重装数值, 72MHZ时SysTick->CTRL=0X01;        //使能,减到零是无动作,采用外部时钟源SysTick->VAL=0;            //清零计数器do{temp=SysTick->CTRL;       //读取当前倒计数值}while((temp&0x01)&&(!(temp&(1<<16))));    //等待时间到达SysTick->CTRL=0;    //关闭计数器SysTick->VAL=0;        //清空计数器
}//ARR=99-->PWM一个周期是100,那么分辨率为1%
//占空比 = CCR/(ARR+1) 
//频率 = 计数器溢出频率 = CK_PSC/(PSC+1)/(ARR+1) = 72M/720/100= 1000HZ ->1ms
int main()
{LED_GPIO_Config();PWM_Config();while(1){for(i=0;i<=100;i++){PWM_SetCompare2(i);Delay(10);}for(i=100;i>=0;i--){PWM_SetCompare2(i);Delay(10);}}
}

 2.程序2:PWM驱动直流电机

具体TIM的配置过程同呼吸灯一样,同样是输出不同的PWM占空比来实现电机的不同速度

我们需要三个引脚,一个输出PWM给电机,两个接电机的控制引脚

  • 使用PA2输出PWM,AIN1/2接到PA4/5
  • 频率设置为1KHZ(可以自己随便设置)
  • 定义一个八位有符号的变量Speed,+:正转  -:反转
  • 使用GPIO_SetBits/ResetBits();来设置AIN1/2的电平高低
  • 使用按键来改变转速
void PWM_Config()
{//开启时钟//使用TIM2的CH3的PA2RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开启PWM引脚//初始化GPIOGPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_AF_PP;//复用推挽,手册可看GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_4 | GPIO_Pin_5 ;GPIO_Init(GPIOA,&GPIO_InitStruct);//选择时基单元的时钟-为内部时钟--定时器上电后默认是内部时钟,故不写这一个也行TIM_InternalClockConfig(TIM2);//初始化时基单元TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;//配置1KHZ的PWMTIM_TimeBaseInitStruct.TIM_Prescaler = 720-1;//PSC-预分频器TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;//向上计数 TIM_TimeBaseInitStruct.TIM_Period = 100-1;//ARR寄存器-重装载寄存器TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;/*不分频----滤波器的采样频率,可以由内部时钟直接提供,也可以由内部时钟加一个时钟分频而来,分频系数就是由TIM_ClockDivision决定*/TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0;//重复计数器,只有高级定时器才有TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct);//初始化OC-输出比较结构体TIM_OCInitTypeDef TIM_OCInitStruct;TIM_OCStructInit(&TIM_OCInitStruct);//因为结构体里面的成员有些是高级定时器采用得到,所以这里就先全部初始化一遍,然后再配置具体的值TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1;//输出比较模式TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;//TIM_OCInitStruct.TIM_Pulse = 50;//CRR TIM_OCInitStruct.TIM_Pulse = 0;//输出要求波型,这里的CRR就不需要了,用固件库的一个函数 TIM_SetCompare3 直接配置CRRTIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High;//输出比较极性TIM_OC3Init(TIM2,&TIM_OCInitStruct);//CH3通道//启动定时器TIM_Cmd(TIM2,ENABLE);}
//电机控制函数void Motor_SetSpeed(int8_t Speed)//+:正转 -:反转
{if(Speed >= 0){GPIO_SetBits(GPIOA,GPIO_Pin_4);GPIO_ResetBits(GPIOA,GPIO_Pin_5);TIM_SetCompare3(TIM3,Speed);}else {GPIO_ResetBits(GPIOA,GPIO_Pin_4);GPIO_SetBits(GPIOA,GPIO_Pin_5);TIM_SetCompare3(TIM3,-Speed);}
}
//主函数#include "stm32f10x.h"   // Device header
#include ".\tim\bsp_tim.h"
#include ".\KEY\bsp_key.h"uint8_t KeyNum;
int8_t Speed;int main()
{KEY_GPIO_Config();PWM_Config();while(1){KeyNum = Key_Scan();if(KeyNum == 0){Speed += 20;if(Speed > 100){Speed = -100;}}else if(KeyNum == 1){Speed -= 20;if(Speed < -100){Speed = 100;}}Motor_SetSpeed(Speed);}
}

3.程序3:控制舵机 

0ee84118f09c434898681decee12dc1c.png

-TB6612驱动板

VM->STLINK的5v

VCC->面包板3.3v

GND->面包板负极

AO1 AO2 接电机

STBY->待机控制引脚,这里不需要待机,接面包3.3v

AIN1/2-> 任意接两个引脚

PWMA->PWM输出控制引脚

驱动VM放在左下角使用PA2输出PWM,AIN1/2接到PA4/5

  • 要点:输出如上图右侧所示的PWM波型
  • 指南者的PA0引脚为按键1,所以使用TIM2的CH3通道的PA2
  • PWM要求频率为50HZ,即总时间20ms,高电平占0.5~2.5ms,这里我们可以给ARR配置20000-1,PSC配置72-1
  • 封装Angle转换函数0-50  180->2500   -->y=Angle/180*2500+50, Angle使用浮点型,利于计算
  • 使用按键来改变角度

#include "bsp_tim.h"void PWM_Config()
{//开启时钟//使用TIM2的CH3的PA2RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开启PWM引脚//初始化GPIOGPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_AF_PP;//复用推挽,手册可看GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2;GPIO_Init(GPIOA,&GPIO_InitStruct);//选择时基单元的时钟-为内部时钟--定时器上电后默认是内部时钟,故不写这一个也行TIM_InternalClockConfig(TIM2);//初始化时基单元TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;TIM_TimeBaseInitStruct.TIM_Prescaler = 72-1;//PSC-预分频器TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;//向上计数 TIM_TimeBaseInitStruct.TIM_Period = 20000-1;//ARR寄存器-重装载寄存器TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;/*不分频----滤波器的采样频率,可以由内部时钟直接提供,也可以由内部时钟加一个时钟分频而来,分频系数就是由TIM_ClockDivision决定*/TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0;//重复计数器,只有高级定时器才有TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct);//初始化OC-输出比较结构体TIM_OCInitTypeDef TIM_OCInitStruct;TIM_OCStructInit(&TIM_OCInitStruct);//因为结构体里面的成员有些是高级定时器采用得到,所以这里就先全部初始化一遍,然后再配置具体的值TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1;//输出比较模式TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;//TIM_OCInitStruct.TIM_Pulse = 50;//CRR   --舵机要求设置频率50HZ-即总时间20ms,高电平时间在0.5~2.5ms之间的PWM波型即CCR->500~2500TIM_OCInitStruct.TIM_Pulse = 0;//输出要求波型,这里的CRR就不需要了,用固件库的一个函数 TIM_SetCompare3 直接配置CRRTIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High;//输出比较极性TIM_OC3Init(TIM2,&TIM_OCInitStruct);//CH3通道//启动定时器TIM_Cmd(TIM2,ENABLE);
}
//0.5ms-0度   2.5ms-180度
//0度   	CCR=500
//180度   CCR=2500
//舵机设置角度,范围0~180
void Servo_SetAngle(float Angle)
{TIM_SetCompare3(TIM2,Angle*2000/180+500);
}void PWM_SetCompare3(uint16_t Compare)//设置CRR
{TIM_SetCompare3(TIM2,Compare);
}
#include "stm32f10x.h"   // Device header
#include ".\tim\bsp_tim.h"
#include ".\KEY\bsp_key.h"
uint8_t KeyNum;
float Angle;int main()
{KEY_GPIO_Config();LED_GPIO_Config();PWM_Config();while(1){KeyNum = Key_Scan();if(KeyNum == 0){Angle+=30;if(Angle>180){Angle = 0;}}else if(KeyNum == 1){Angle-=30;if(Angle<0){Angle = 180;}}Servo_SetAngle(Angle);}
}

相关文章:

stm32-定时器输出比较PWM

目录 一、输出比较简介 二、PWM简介 三、输出比较模式实现 1.输出比较框图(以通用定时器为例) 2.PWM基本结构 四、固件库实现 1.程序1&#xff1a;PWM呼吸灯 2.程序2&#xff1a;PWM驱动直流电机 3.程序3&#xff1a;控制舵机 一、输出比较简介 死区生成和互补输出一般…...

Redis对过期key的删除策略

假设设置了一批 key 只能存活 1 个小时&#xff0c;那么 1 小时后&#xff0c;redis 是怎么对这批 key 进行删除的&#xff1f; 定期删除 惰性删除 定期删除: redis是默认每隔100ms就随机抽取一些设置了过期时间的key&#xff0c;检查是否过期&#xff0c;如果过期就删除。…...

http的body格式

body数据都通常放在 HTTP 请求的 body 部分。 在 HTTP 请求中&#xff0c;Content-Type 头用于指示 body 中的数据格式。例如&#xff0c;对于 x-www-form-urlencoded 格式的数据&#xff0c;通常会设置 Content-Type: application/x-www-form-urlencoded&#xff0c;而对于 fo…...

Java Web开发从0到1

文章目录 总纲第1章 Java Web应用开发概述1.1 程序开发体系结构1.1.1 C/S体系结构介绍1.1.2 B/S体系结构介绍1.1.3 两种体系结构的比较1.2 Web应用程序的工作原理1.3 Web应用技术1.3.1 客服端应用技术1.3.2 服务端应用技术1.4 Java Web应用的开发环境变量1.5 Tomcat的安装与配置…...

002——编译鸿蒙(Liteos -a)

目录 一、鸿蒙是什么 二、Kconfig 2.1 概述 2.2 编译器 2.3 make使用 本文章引用了很多韦东山老师的教程内容&#xff0c;算是我学习过程中的笔记吧。如果侵权请联系我。 一、鸿蒙是什么 这里我补充一下对鸿蒙的描述 这张图片是鸿蒙发布时使用的&#xff0c;鸿蒙是一个很…...

Ansible--详解

目录 一、Ansible核心组件 二、Ansible配置 1.配置案例 &#xff08;1&#xff09;管理安装ansible &#xff08;2&#xff09;管理机分发公匙 &#xff08;3&#xff09;配置管理 &#xff08;4&#xff09;测试连接 2.命令说明 三、playbook剧本编写 1.playbook模板…...

Django和Mysql数据库

Django学习笔记 Django和Mysql数据库 Django开发操作数据库更简单&#xff0c;内部提供了ORM框架。 1)安装mysqlclient pip3 install mysqlclient2)ORM ORM可以帮助我们做两件事&#xff1a; 1.创建、修改、修改数据库中的表&#xff08;不用写sql语句&#xff09;[不能创…...

[蓝桥杯]-最大的通过数-CPP-二分查找、前缀和

目录 一、题目描述&#xff1a; 二、整体思路&#xff1a; 三、代码&#xff1a; 一、题目描述&#xff1a; 二、整体思路&#xff1a; 首先要知道不是他们同时选择序号一样的关卡通关&#xff0c;而是两人同时进行两个入口闯关。就是说两条通道存在相同关卡编号的的关卡被通…...

安卓UI面试题 26-30

26. Window和DecorView是什么?DecorView又是如何和Window建立联系的?Window是 WindowManager 最顶层的视图,它负责背景(窗口背景)、Title之类的标准的UI元素, Window是一个抽 象类,整个Android系统中, PhoneWindow是 Window的唯一实现类。 至于 DecorView,它是一个顶级 …...

CPU、GPU、IPU、NPU、TPU、LPU、MCU、MPU、SOC、DSP、FPGA、ASIC、GPP、ECU、

CPU&#xff1a; 中央处理器&#xff08;Central Processing Unit&#xff09;是一块超大规模的集成电路&#xff0c;是一台计算机的运算核心&#xff08;Core&#xff09;和控制核心&#xff08; Control Unit&#xff09;。 它的功能主要是解释计算机指令以及处理计算机软件…...

鸿蒙车载原生开发,拓展新版图

一天内连发“五弹”、HiCar 4.0首次上车 华为鸿蒙狂扩“汽车朋友圈”-上游新闻 汇聚向上的力量 3月15日&#xff0c;在“华为云&华为终端云服务创新峰会2024”上&#xff0c;华为首批汽车行业伙伴广汽传祺、岚图汽车、零跑汽车、凯翼汽车加入鸿蒙生态合作&#xff0c;华为…...

15届蓝桥杯第二期模拟赛题单详细解析

文章目录 &#x1f9e1;&#x1f9e1;t1_求余&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t2_灌水&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t3_字符显示&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t4_区间最大和…...

mysql统计数据库大小

ps:亲测可行,时间2024-03-15 15:18 mysql统计数据库大小 要统计MySQL数据库的大小&#xff0c;你可以使用以下SQL查询&#xff1a; SELECT table_schema AS "Database",ROUND(SUM(data_length index_length) / 1024 / 1024, 2) AS "Size (MB)"FROM info…...

centos防火墙firewall-cmd限定特定的ip访问

文章目录 firewall-cmd是什么&#xff1f;启动firewalld服务查看默认区域关闭端口访问添加富规则firewall-cmd的区域概念firewall-cmd的常用选项通用选项&#xff1a;状态选项&#xff1a;永久选项&#xff1a;区域选项&#xff1a; firewall-cmd是什么&#xff1f; firewall-…...

创维汽车与创维光伏储能亮相2024上海AWE,感受制造业的升级变迁

2024年3月14日&#xff0c;中国家电及电子消费博览会在上海正式召开。相比往届展会&#xff0c;2024上海AWE进驻更多行业头部力量&#xff0c;出展更多尖端科技&#xff0c;蕴含更深行业思考。创维光伏储能及乘载更先进智驾科技的创维汽车亮相此次展会。 消费电子的革新不断影响…...

Kafka配置SASL_PLAINTEXT权限。常用操作命令,创建用户,topic授权

查看已经创建的topic ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --list 创建topic 创建分区和副本数为1的topic ./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --topic acltest --partitions 1 --replication-factor 1 创建kafka用户 …...

[Java、Android面试]_05_内存泄漏和内存溢出

本人今年参加了很多面试&#xff0c;也有幸拿到了一些大厂的offer&#xff0c;整理了众多面试资料&#xff0c;后续还会分享众多面试资料。 整理成了面试系列&#xff0c;由于时间有限&#xff0c;每天整理一点&#xff0c;后续会陆续分享出来&#xff0c;感兴趣的朋友可关注收…...

MySQL-HMA 高可用故障切换

本章内容&#xff1a; 了解MySQL MHA搭建MySQL MHAMySQL MHA故障切换 1.案例分析 1.1.1案例概述 目前 MySQL 已经成为市场上主流数据库之一&#xff0c;考虑到业务的重要性&#xff0c;MySQL 数据库 单点问题已成为企业网站架构中最大的隐患。随着技术的发展&#xff0c;MHA…...

深度学习 精选笔记(11)深度学习计算相关:GPU、参数、读写、块

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增)&#xff0c;以达到集多方教程的精华于一文的目的。 ③非常推荐上面&#xff08;学习参考&#x…...

深度学习 Day27——J7对于ResNeXt-50算法的思考

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同学的学习圈子 文章目录 前言问题分析 前言 关键问题&#xff1a;ResNeXt-50中conv_shortcutFalse时…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...