这几天一直在使用STM32来写sensorless BLDC的驱动框架,那么必须会用到TIM1的CCR1/CCR2/CCR3产生的六路互补PWM,以及用CCR4来产生一个中断,用来在PWM-ON的时候产生中断进行过零检测,以及相电流的检测等。 在STM32微控制器中,实现传感器无刷直流(BLDC)电机驱动的关键技术之一是高效地采集电机相电流和过零检测。本篇将详细阐述如何利用TIM1定时器生成6路ADC采样,并通过CCR4触发ADC1的注入通道进行采样。 TIM1是一个高级定时器,它具有丰富的功能,包括产生PWM脉冲、中断和事件触发。在BLDC驱动框架中,TIM1的CCR1、CCR2和CCR3通常用于生成六路互补PWM信号,以驱动电机的三相。互补PWM模式可以确保电机相位在正确的时刻开启和关闭,从而实现无刷控制。 要生成这6路PWM,我们首先需要配置TIM1的时间基(Time Base)。例如,我们可以设定TIM_TimeBaseStructure结构体,包括计数周期(TIM_Period)、预分频器(TIM_Prescaler)、计数模式(TIM_CounterMode_Up)、时钟分频因子(TIM_ClockDivision)和重复计数器(TIM_RepetitionCounter)。初始化TIM1后,再通过TIM_TimeBaseInit函数设置这些参数。 接着,为了支持死区时间和自动输出功能,我们需要对TIM1的BreakDeadTimeConfig(TIM_BDTRInitStructure)进行初始化。这涉及到开启死区时间(TIM_DeadTime)、断路状态(TIM_Break和TIM_BreakPolarity)以及自动输出使能(TIM_AutomaticOutput)等。 对于PWM通道的设置,例如OCR1A、OCR1B、OCR2A、OCR2B、OCR3A和OCR3B,我们需要使用TIM_OCInitStructure结构体,定义PWM模式(TIM_OCMode_PWM1)、输出状态(TIM_OutputState_Disable/Enable)、输出极性(TIM_OCPolarity_High/Low)以及其他相关参数,然后分别调用TIM_OC1Init、TIM_OC2Init和TIM_OC3Init等函数初始化各通道。 在PWM模式下,通过CCR4的比较匹配事件,可以触发ADC1的注入通道采样。注入通道是ADC的一个特性,允许在常规转换序列之外进行单独的采样和转换,通常用于实时监测特定事件。为了实现这个功能,我们需要配置ADC的注入通道和触发源。例如,设置ADC1注入通道的采样时间、序列位置和触发源为TIM1_CCR4的更新事件。完成这些设置后,当CCR4的值与定时器计数值匹配时,ADC1将开始采样。 在实际应用中,CCR4的中断可用于过零检测。当PWM波形的占空比达到0或100%时,CCR4会产生中断,此时可以通过中断服务程序进行过零检测和相电流的计算。此外,还可以配置DMA(直接内存访问)与ADC1配合,自动将采样结果传输到内存,减轻CPU负担,提高系统效率。 总结来说,通过STM32的TIM1定时器,我们可以生成6路互补PWM信号,用于驱动BLDC电机。同时,利用CCR4的中断触发ADC1的注入通道采样,实现过零检测和实时电流监控。这一配置对于构建高效、精准的无传感器BLDC驱动系统至关重要。
2024-09-01 16:06:26 40KB TIM1 6路ADC CCR4 ADC1
1
Jira Webhook 侦听器 一小组脚本,用于捕获 JIRA Webhook 事件并运行自定义操作(例如向非 JIRA 用户发送通知电子邮件,或运行命令以刷新项目的 HTML 镜像) 这个项目的创建是为了满足一个非常特定的需求,但希望它可以成为其他人的有用基础。 问题跟踪 在私人 JIRA 安装中跟踪问题,但是可以在查看 HTML 镜像 执照 GNU GPL V2
2024-08-30 16:30:58 15KB
1
OFD(Open Fixed Document Format)是一种开放的文档格式,主要用于电子文档的存储和交换,尤其在中国的政府和企事业单位中广泛应用。本主题涉及到的是一个专为前端设计的OFD预览插件,允许用户在浏览器环境中直接查看OFD文件,无需后端处理或额外的软件安装。 这个纯前端预览插件完全基于JavaScript实现,这意味着它可以在任何支持HTML5的现代浏览器上运行,包括Chrome、Firefox、Safari和Edge等。开发者可以轻松地将此插件集成到自己的Web项目中,以提供OFD文件的在线预览功能。使用过程非常简单,只需要在网页中嵌入该插件,并通过URL参数传递OFD文件的地址。 例如,提供的用法是:`http://xxx:xxx/ofdViewer/view.html?file=yyy`,这里的`xxx:xxx`指的是服务器的IP地址和端口号,`yyy`则是需要预览的OFD文件的路径或者流编码。如果文件数据是以流的形式传递,可能需要对文件内容进行URL编码,以确保其能在URL中安全传输。 集成此插件时,开发者需要注意以下几点: 1. **服务器配置**:由于插件依赖于服务器来加载OFD文件,所以需要确保服务器正确配置,能够响应HTTP请求并提供文件内容。 2. **安全性**:在使用文件流时,要防范潜在的安全风险,如XSS(跨站脚本攻击)和CSRF(跨站请求伪造)。确保对用户输入进行验证和过滤,防止恶意代码注入。 3. **用户体验**:优化加载速度,考虑使用分块加载或懒加载技术,特别是对于大文件,可以提高预览的响应速度。 4. **兼容性测试**:虽然插件基于JavaScript,但仍需要在多种浏览器和设备上进行测试,确保在各种环境下都能正常工作。 5. **错误处理**:添加适当的错误处理机制,当文件加载失败或用户访问权限不足时,能向用户清晰地反馈问题。 在压缩包`ofdViewer`中,可能包含以下组件: - `view.html`: 预览插件的主页面,通常会包含JavaScript代码和HTML结构,用于显示OFD文件内容。 - JavaScript库:可能包含插件的核心代码,用于解析OFD文件格式,渲染页面内容。 - CSS样式表:用于调整预览界面的样式和布局。 - 图像和其他资源:可能包括插件运行所需的图像文件或其他静态资源。 这个OFD前端预览插件为Web开发者提供了一种便捷的方式,使他们能够在不依赖特定后端服务的情况下,快速实现OFD文件的在线预览功能,提高了用户的交互体验。对于需要处理OFD文档的Web应用来说,这是一个非常实用的工具。
2024-08-30 15:32:02 29.98MB
1
在Python的IT领域,Pandas库是数据处理和分析的核心工具。Pandas提供了一系列高效、易用的数据结构,如Series和DataFrame,使得数据清洗、转换和探索变得简单。本资料包"**Pandas基础-数据集.zip**"包含了对Pandas基础知识的深入学习,包括文件的读取与写入、Series和DataFrame的使用,以及一些常用的基本函数。通过实例数据集,如**Kobe_data.csv**、**Game_of_Thrones_Script.csv**和**table.csv**,我们将进一步探讨这些概念。 1. **文件读取与写入**: - Pandas提供了`read_csv()`函数来读取CSV文件,例如`df = pd.read_csv('Kobe_data.csv')`。同样,可以使用`to_csv()`函数将DataFrame写入CSV文件,例如`df.to_csv('output.csv', index=False)`。 - 对于其他格式,如Excel(.xls或.xlsx)、SQL数据库等,Pandas也提供了相应的读取和写入函数,如`read_excel()`和`to_excel()`,`read_sql()`和`to_sql()`。 2. **Series和DataFrame**: - **Series**是Pandas的一维数据结构,类似于一列数据,可以包含任何类型的数据,并且具有内置索引。 - **DataFrame**是二维表格型数据结构,由行和列组成,每一列可以是不同的数据类型。DataFrame有行索引和列索引,可以理解为一个表格或者关系型数据库的表。 3. **常用基本函数**: - `head()`: 显示DataFrame的前几行,通常用于快速查看数据。 - `describe()`: 提供数据的统计摘要,如计数、平均值、标准差等。 - `info()`: 显示DataFrame的结构信息,包括非空值的数量、数据类型等。 - `sort_values()`: 根据指定列进行排序,例如`df.sort_values('column_name')`。 - `groupby()`: 按照一个或多个列进行分组,然后可以应用聚合函数,如求和、平均值等。 4. **Kobe_data.csv**: 这个文件可能包含科比·布莱恩特(Kobe Bryant)的职业生涯数据,例如比赛得分、篮板、助攻等。我们可以利用Pandas进行数据清洗、统计分析,比如计算科比的平均得分、最高得分等。 5. **Game_of_Thrones_Script.csv**: 这个文件可能是《权力的游戏》(Game of Thrones)的剧本文本数据,我们可以用Pandas分析对话频率、角色互动等,进行文本挖掘和情感分析。 6. **table.csv**: 此文件可能是任何主题的数据集,我们可以将其加载到Pandas DataFrame中,进行数据操作和分析,如合并、过滤、分组、透视等。 通过以上介绍,你可以开始对Pandas有一个全面的认识,了解如何处理和分析各种类型的数据。实践是最好的老师,动手操作这些数据集将加深你对Pandas的理解。在实际工作中,Pandas的灵活性和强大功能使其成为数据科学家和分析人员不可或缺的工具。
2024-08-30 10:01:12 1.35MB Pandas基础用到的三个数据集
1
PixPlant 5是一种高级软件应用程序,旨在从图像创建纹理。这是一个帮助设计和编辑纹理和 3D 贴图的 3D 程序。该程序的功能在整体简洁明了的编辑环境中精心设计和组织。启动时会有一个向导欢迎您,该向导提供了一系列您可以激活的操作。它们分为几类,即用于从照片创建平铺纹理并从图片中提取所有 3D 贴图的纹理,用于中和文件中的阴影并打开/编辑漫反射图像的漫反射,以及用于从图像中提取位移的位移,从法线贴图导入置换,并打开/编辑置换贴图。此外,您可以查看其他类别,例如 Normal 导入和编辑法线贴图,Specular 从照片中提取高光贴图并打开/更改高光贴图,以及 Ambient Occlusion 从置换贴图渲染 AO 并导入/修改 AO 地图。纹理可以导出为 JPG、BMP、GIF、JP2、PSD、PNG、TGA 或其他文件格式。该工具允许您在输出时导入具有相同文件格式的图像。PixPlant 允许您放大或缩小纹理并启用 3D 视图模式。您可以从照片或生成的平铺图像中提取 3D 贴图,生成置换贴图、法线贴图、漫反射贴图、镜面反射贴图和环境光遮挡贴图,以及对每张贴图使用微调编辑参数。
2024-08-29 15:23:27 54.23MB
1
python烟花代码 用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip用python代码放烟花源码python.zip
2024-08-29 14:08:47 15.46MB python
1
edksetup.bat Rebuild build 制作iso文件shell.efi放到这个位置 \EFI\BOOT\bootx64.efi fs0: load DebugAgentDxe.efi powershell Set-VMComPort -VMName dbguefiisov2 -Path \\.\pipe\windbg -Number 1 修改 C:\Program Files (x86)\Intel\Intel(R) UEFI Development Kit Debugger Tool\SoftDebugger.ini [Debug Port] Channel = Pipe Port = windbg 效果 https://blog.csdn.net/oShuangYue12/article/details/136187678?spm=1001.2014.3001.5501
2024-08-27 19:42:07 101.08MB windows
1
包装器 OpenCL Wrapper for C++ 提供对上下文和队列管理、内存分配/释放和内核调用的更轻松访问。 ###特征 当超出范围时,内存缓冲区将自动释放自己。 缓冲区类型被模板化以显示它们预期包含的类型。 缓冲区可以设置为在被内核修改或手动操作时自动将内容检索到主机存储。 还自动创建事件以允许在单独的队列中自动执行所有内存同步,这允许在任何可能的情况下自动异步内存传输。 包括使用 Boost.Test 验证包装器是否正常工作的第二个项目。
2024-08-27 14:46:02 26KB
1
在IT行业中,UPS(Uninterruptible Power Supply)是不可或缺的一部分,特别是在数据中心和关键设施中,它们为设备提供持续稳定的电力供应,防止因电源中断而造成的损失。艾默生和维蒂是知名的UPS制造商,APM300是他们的一款产品线,主要针对中大型企业或数据中心的需求设计。这款设备通常配备有高级的管理功能,允许用户进行监控、配置和维护。本文将深入探讨用于艾默生、维蒂APM300等UPS主机管理设置的软件及其重要性。 "NX系列维蒂、艾默生UPS串口软件"是指用于与这些UPS设备通过串行接口通信的管理工具。串口通信是一种常见的硬件接口,允许计算机和其他设备之间交换数据。在UPS管理软件中,它允许用户通过电脑远程访问UPS的状态信息,如电池电量、输入电压、输出负载等,并进行必要的设置调整。 1. **监控功能**:该软件能够实时监控UPS的工作状态,包括输入电压、输出电流、电池容量等关键参数。这有助于预防潜在问题,如电压波动、电池老化,确保设备的稳定运行。 2. **报警与通知**:当UPS检测到异常情况时,软件会立即发送警告通知,这可能是电源故障、电池电量低或者过载。这种即时的警报系统可以帮助用户快速响应,减少因电源问题导致的数据丢失或硬件损坏。 3. **设置与配置**:用户可以通过软件设置UPS的工作模式,例如节能模式、智能充电策略等。此外,还可以配置告警阈值,根据自身需求定制报警条件。 4. **电源管理**:在停电或其他紧急情况下,软件可以协助进行有序的关机,保护服务器和其他设备的数据安全,避免因突然断电造成的硬件损坏。 5. **报告与日志**:软件可以记录UPS的历史数据,生成详细的报告,帮助分析设备性能,评估电池健康状况,并为维护决策提供依据。 6. **网络管理**:随着技术的发展,许多现代UPS支持网络管理功能,用户可通过局域网或互联网远程管理设备。这尤其适用于多台UPS部署的环境,简化了管理和维护工作。 7. **兼容性与扩展性**:艾默生和维蒂的管理软件通常具备良好的兼容性,能适应不同的操作系统和硬件环境。同时,随着新的UPS型号和功能推出,软件也会不断更新以支持更多的设备和功能。 "NX系列维蒂、艾默生UPS串口软件"是高效管理艾默生、维蒂APM300等UPS设备的关键工具,它提供了全面的监控、控制和保护功能,确保了企业级电源系统的稳定性和可靠性。掌握并充分利用这类软件,不仅可以提高UPS设备的运行效率,还能降低维护成本,保障业务连续性。
2024-08-27 13:46:38 174KB
1
自制短ju搜索工具(亲测好用)
2024-08-26 16:50:54 9.81MB
1