- 博客(36)
- 收藏
- 关注
原创 6-5 TIM输入捕获
输入捕获,即Input Capture,英文缩写为IC。左边为输入捕获的部分,右边为输出比较的部分,4个输入捕获和输出比较通道,共用4个CCR寄存器;从CH1到CH4,4个通道的引脚,也是共用的;所以对于同一个定时器,输入捕获和输出比较,只能使用其中一个,不能同时使用;
2025-03-31 19:26:00
528
原创 6-3 TIM输出比较-驱动舵机旋转
输出比较概述输出比较,英文全称Output Compare,简称OC。它最主要的功能是 可以通过比较计数器CNT和捕获/比较寄存器(Capture/Compare Register)CCR值的关系,来输出电平进行置1、置0的翻转操作,用于输出一定频率和占空比的PWM波形。每个高级定时器和通用定时器都拥有4个输出比较的通道,从下图可以看出,可以同时输出4路PWM波形,且高级定时器的前3个通道额外拥有死区生成电路和互补输出的功能(用于驱动三相无刷电机)。4个输出比较通道都有独立的CCR寄存器,但是它们。
2025-03-11 19:52:45
647
原创 6-1 定时中断
TIM(Timer)定时器,定时触发中断定时器本质上就是一个计数器。定时器可以对输入的时钟进行计数(在stm32中定时器的基准时钟一般是主频72MHz,如果对72MHz记72个数,那就是1MHz也就是1us的时间(72MHz就是1秒记72M个数,可以理解为对72个数计数1M次,记72个数的频率就是1MHz,用时1us)),如果记72000个数,那就是1KHz也就是1ms的时间,并在计数值达到设定值时触发中断stm32的定时器拥有16位(2的16次方是65536)的计数器。
2025-02-26 19:55:22
966
原创 9.中断系统、EXTI外部中断
EXTI(Extern Interrupt)外部中断EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序。引脚电平变化,申请中断支持的触发方式(引脚电平的变化类型):上升沿(电平从低电平变到高电平的瞬间触发中断)/下降沿(电平从高电平变到低电平的瞬间触发中断)/双边沿(上升沿和下降沿都可以触发中断)/软件触发(程序执行代码就能触发中断)所有GPIO口都能触发中断,但。
2025-01-23 14:22:38
889
原创 3-5 Light sensitive sensor controls buzzer &4-1 OLED
模块化编程,分为三部分,buzzer,Light sensitive sensor ,main。
2025-01-14 20:25:24
139
原创 STM32入门教程-示例程序(按键控制LED&光敏传感器控制蜂鸣器)
代码主体包含:LED.c key.c main.c delay.c(延时防按键抖动)
2025-01-14 19:39:35
604
原创 STM32-SPI通信实现(待补充)
对主机来说:时钟,主机输出,片选,都是输出引脚---推挽输出模式;主机输入--配置上拉输入,PA6为上拉输入,其他为推挽输出;首先是从机选择,输出引脚---写ss(CS-PA4);输出引脚---SCK(CLK-PA5);输出引脚---MOSI(PA7)交换一个字节(4种模式-选择模式0进行实现):主机移出数据最高位放到MOSI,分为三个模块,SPI:通信引脚分装,初始化,SPI通信(起始,结束,交换)用面包板进行飞线,将W25Q64模块插入合适位置,用面包板进行跳线,构建Mysoi.c文件。
2025-01-08 16:04:12
174
原创 STM32-按键&光敏传感器----原理(待补充)
按键:常见的输入设备,按下导通,松手断开按键抖动:由于按键内部使用的是机械式弹簧片来进行通断的,所以在按下和松手的瞬间会伴随有一连串的抖动.传感器模块:传感器元件(传感器模块就是利用传感器元件,比如光敏电阻/热敏电阻/红外接收管等)的电阻会随外界模拟量的变化而变化(比如光线越强,光敏电阻的阻值就越小),通过与定值电阻进行串联分压即可得到模拟电压输出,再通过电压比较器进行二值化(二值化就是要么是高要么是低)即可得到数字电压输出。
2025-01-08 16:03:19
1065
原创 电子技术(5)——FET-典型全控型器件
PMOS的特性,Vgs小于一定的值就会导通,适合用于源极接VCC时的情况(高端驱动)。但是,虽然PMOS可以很方便地用作高端驱动,但由于导通电阻大,价格贵,替换种类少等原因,在高端驱动中,通常还是使用NMOS.与电压的情况相似,设计人员必须确保所选的MOSFET能承受这个额定电流,即使在系统产生尖峰电流时。结构和工作原理:MOSFET是一种电压控制器件,利用金属氧化物半导体场效应控制导通状态。通过在栅极和源极之间施加电压,可以控制漏极和源极之间的电流。低导通电阻:在导通状态下,漏极和源极之间的电阻较低。
2024-11-21 20:11:29
400
原创 电子技术(4)——晶闸管-半控型器件
晶闸管(Thyristor)是晶体闸流管的简称,又称可控硅整流器(Silicon Controlled Rectifier---,简称可控硅)。
2024-11-21 19:44:41
368
原创 电子技术(3)——二极管-不可控器件
电力二极管(Power Diode)也称为功率二极管或半导体整流器(Semiconductor Rectifier,简称SR),属于。应用范围:不可控整流、电感性负载回路、电压源型无功回路、电流源型逆变电路中的换流隔断等场合。
2024-11-21 19:23:36
350
原创 电力电子技术(2)共模干扰和差模干扰
共模干扰(Common-mode):两导线上的干扰电流振幅相等,而方向相同者 称为共模干扰。差模干扰(Differential-mode):两导线上的干扰电流,振幅相等,方向相反 称为差模干扰。
2024-11-21 19:07:36
556
原创 电力电子(1)-TVS管(雪崩击穿二极管)
TVS(Transient Voltage Suppressors,瞬态电压抑制器)称雪崩击穿二极管,又称为瞬态抑制二极管,是一种高效电路保护器件,主要是保护电路不受瞬态高压尖峰脉冲(静电或雷击浪涌)的冲击。
2024-11-20 18:40:16
255
原创 STM32-工程中(源)文件的作用-头文件(.h)的路径添加
stm32f10x.h---与51的REGX52.H一样,描述寄存器与响应的地址system_stm32f10x.c system_stm32f10x.h---两个sysytem文件主要用来配置时钟并且stm32是内核与外核设备组成,内核的寄存器与外围设备的寄存器不在一起core_cm3.c core_cm3.c 是内核寄存器的配置文件keil5(stm32)文件中--.h文件的添加以启动文件为例:这一款芯片为stm32c8t6该界面为Keil软件新建工程小助手,后续再讲。
2024-11-03 23:28:55
649
原创 STM32--keil安装其他ARM芯片步骤
在安装keil5_MDK后,还需安装相应的支持包;现使用STM32F103系列的芯片,安装对应的支持包;后续要使用其他ARM芯片,安装相应的支持包即可。选择STMicroelectronics系列,如果以后要用F2系列的芯片,进行下载即可。离线安装:双击安装,其自动选择安装路径。点击左上角更新列表,有点慢!
2024-10-26 12:45:12
236
原创 51-串口通信学习笔记
单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大的扩展了单片机的应用范围,增强了单片机系统的硬件实力。51单片机内部自带UART(Universal Asynchronous ReceiverTransmitter,通用异步收发器),可实现单片机的串口通信。
2024-10-18 17:24:15
250
原创 MathType公式居中,自动右编号对齐
再点击右编号插入公式, 即可对第二章的公式进行自动编号,到了第三章的操作依次类推。到了下一章,需要修章节编号改为2-1,打字点要在第二章那儿,点击插入分隔符。再点击右编号输入公式-即可自动插入编号,公式居中对齐。改成这样,点击-样式,将数字的字体部分斜体勾上即可。自动编号,先点击-插入编号-格式化-节编号。点击内联,插入公式--使用英文输入法。将节编号修改为2,确认。
2024-10-16 23:03:44
4351
原创 MATLAB(simulink仿真)-PMSM电机模型-SVPWM-PI电流环-PI转速环的简易搭建
双击左键,搜索per,第一个为PMSM电机模型PMSM的电机模型中Tm为负载,ABC为三相线,m为电机内部的一些信息。提取m中的信息,通过Bus Selector模块来提取,选取电机信息:ABC相电流,转速,机械角度,转矩机械角度指的是转子相对于定子旋转的实际空间角度,这是肉眼可见的角度。在无刷直流电机(BLDC)的FOC(磁场定向控制)中,Park变换就是使用电角度来进行的。这是因为在电机控制中,电角度能够准确地描述电动势和电流的变化周期,从而实现更精确的控制。
2024-10-14 15:05:39
1325
1
原创 ros笔记 URDF仿真 4.优化_xacro与语法
使用xacro优化上一节案例中驱动轮实现,需要使用变量封装底盘的半径、高度,使用数学公式动态计算底盘的关节点坐标,使用 Xacro 宏封装轮子重复的代码并调用宏创建两个轮子(注意: 在此,演示 Xacro 的基本使用,不必要生成合法的 URDF )。问题2:URDF 中的部分内容是高度重复的,驱动轮与支撑轮的设计实现,不同轮子只是部分参数不同,形状、颜色、翻转量都是一致的,在实际应用中,构建复杂的机器人模型时,更是易于出现高度重复的设计,按照一般的编程涉及到重复代码应该考虑封装。
2022-09-28 10:11:13
427
原创 ros笔记 URDF仿真 3.joint
创建机器人模型,底盘为长方体,在长方体的前面添加一摄像头,摄像头可以沿着 Z 轴 360 度旋转。revolute: 旋转关节,类似于 continues,但是有旋转角度限制。prismatic: 滑动关节,沿某一轴线移动的关节,有位置极限。planer: 平面关节,允许在平面正交方向上平移或旋转。floating: 浮动关节,允许进行平移、旋转运动。type ---> 关节运动形式。name ---> 为关节命名。parent(必需的)child(必需的)
2022-09-16 08:46:46
770
原创 ros笔记 URDF仿真- 2.link设置形状,偏移量与欧拉角,颜色
1.属性2.子标签visual ---> 描述外观(对应的数据是可视的)geometry 设置连杆的形状标签1: box(盒状)标签2: cylinder(圆柱)标签3: sphere(球体)标签4: mesh(为连杆添加皮肤)origin 设置偏移量与倾斜弧度属性1: xyz=x偏移 y便宜 z偏移属性2: rpy=x翻滚 y俯仰 z偏航 (单位是弧度)metrial 设置材料属性(颜色)属性: name标签: colorcollision ---> 连杆的碰撞属性。
2022-09-13 10:57:29
1378
原创 ros -URDF仿真 1.集成 Rviz
准备:新建功能包,导入依赖核心:编写 urdf 文件核心:在 launch 文件集成 URDF 与 Rviz在 Rviz 中显示机器人模型cd demo03创建功能包,导入依赖创建一个新的功能包,名称自定义,导入依赖包:urdfxacro在当前功能包下,再新建urdf: 存储 urdf 文件的目录meshes:机器人模型渲染文件(暂不使用)config: 配置文件launch: 存储 launch 启动文件在urdf文件夹下新建urdf 和 xacro 文件夹。
2022-09-13 09:45:04
341
原创 ros操作命令与实操-参数服务器
需求:修改背景色第一个命令行:roscore第二个命令行(与之前调用launch节点不同,因为要单独断开乌龟节点重新启动):rosrun turtlesim turtlesim_node第三个命令行:rosparam listrosparam get /turtlesim/background_rrosparam get /turtlesim/background_brosparam get /turtlesim/background_g可查看三原色的数值也可更改三原色数值:rosparam set /tu
2022-07-06 15:00:36
316
原创 ros操作命令与实操-服务调用
第一个命令行:启动之前的launch文件,启动乌龟的GUIcd demo03_wscatkin_makesource ./devel/setup.bashroslaunch plumbing_test start_turtle.launch获取话题第二个命令行:获取话题:rosservice list获取消息类型:rosservice info /spawn获取消息格式:rossrv info turtlesim/Spawn...
2022-07-02 21:19:35
703
原创 ros操作命令与实操-话题订阅
CTRL+shift+a 注释获取话题 rostopic list获取消息类型-rostopic info /turtle1/pose type:发布者:订阅者: 查看消息具体格式:rosmsg info turtlesim/Posex,y 坐标theta 朝向 float32 linear_velocity 线速度float32 angular_velocity 角速度rostopic echo /turtle1/pose...
2022-06-24 22:05:44
862
原创 ros操作命令与实操-话题发布
在 ROS 同提供了一些实用的命令行工具,可以用于获取不同节点的各类信息,常用的命令如下: 和之前介绍的文件系统操作命令比较,文件操作命令(参数增删改查)是静态的,操作的是磁盘上的文件,而上述命令是动态的,在ROS程序启动后,可以动态的获取运行中的节点或参数的相关信息。............
2022-06-22 17:27:47
2178
原创 参数服务器(c++实现)
作用存储一些多节点共享的数据,类似于全局变量。案例实现参数增删改查操作。注意:参数服务器不是为高性能而设计的,因此最好用于存储静态的非二进制的简单数据在 C++ 中实现参数服务器数据的增删改查,可以通过两套 API 实现:ros::NodeHandleros::param1.创建工作空间并初始化 mkdir -p demo03_ws/srccd demo03_wscatkin_make2.进入 src 创建 ros 包并添加依赖配置功能包 plumbing_param_server导入依赖的包 rosc
2022-06-21 15:14:21
306
原创 服务通信—自定义srv
1.创建工作空间并初始化 mkdir -p demo02_ws/srccd demo03_wscatkin_make2.进入 src 创建 ros 包并添加依赖配置功能包 plumbing_server_client导入依赖的包 roscpp rospy std_msg3.定义srv文件在src目录下的功能包文件夹中-新建文件夹srv-新建文件ADDints.srv(服务消息的载体) 4.编辑配置文件package.xml中添加编译依赖与执行依赖(2处)message_gen...
2022-06-07 23:12:52
467
原创 话题通信-自定义msg
在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,这些数据一般只包含一个 data 字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如: 激光雷达的信息... std_msgs 由于描述性较差而显得力不从心,这种场景下可以使用自定义的消息类型。 ROS中还有一种特殊类型:,标头包含时间戳和ROS中常用的坐标帧信息。会经常看到msg文件的第一行具有。需求:创建自定义消息,该消息包含人的信息:姓名、身高、年龄等。流程:.
2022-06-07 15:51:03
407
原创 ROS 学习笔记-helloworld
1. HelloWord 实现ROS中的程序实现流程大致如下:先创建一个工作空间; 再创建一个功能包; 编辑源文件; 编辑配置文件; 编译并执行。1.创建工作空间并初始化mkdir -p demo01/srccd demo01catkin_make......
2022-05-30 23:08:17
136
1
单双三电阻电流采样技术及其触发策略-笔记word版
2024-12-06
非线性磁链观测器的设计与实现-手写版
2024-12-06
弱磁控制-MTPA-MTPV-手写版
2024-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人