【无刷直流电机】【DS402协议】学习记录

article/2025/10/28 23:42:05

DS402是建立在DS301(DS301就是一个通讯协议栈)基础之上的伺服类控制协议。

ds402.c

#include <stm32g0xx_hal.h> //Sets up the correct chip specifc defines required by arm_math
//#define ARM_MATH_CM4
//#include <arm_math.h>#include <mcpwm.h>#include <stdlib.h>
#include <math.h>
//#include <cmsis_os.h>#include <main.h>
#include <adc.h>
#include <tim.h>
#include <spi.h>
#include <utils.h>
#include "delay.h"
#include "usart.h"short operation_mode=1,operation_mode_buff=0;
union Status_uint16_t status_word;
union Control_uint16_t control_word,control_word_b;
u16 motor_on=0;
uint8_t tmp[20];//测试用
void DS402_process(void)
{	if(control_word.all!=control_word_b.all){//control_word_b.all=0x1234;//测试用
//		SendByte(control_word.all>>8);//测试用
//		SendByte(control_word.all);//测试用//		SendByte(Error_State.all>>24);//测试用
//		SendByte(Error_State.all>>16);//测试用
//		SendByte(Error_State.all>>8);//测试用
//		SendByte(Error_State.all);//测试用switch(control_word.all){case 0x0f:if(Error_State.all==0){SendMessage("case0x0f\r\n");//测试用//Scop_Start=1;V_current_control_integral_d=0;V_current_control_integral_q=0;Iq_demand=0;speed_demand=0;position_demand=0;snprintf(tmp,sizeof(tmp),"mode is %d",operation_mode);//测试用SendMessage(tmp);//测试用switch(operation_mode){case 14:case 12:case 11:case 17:phase_dir=1;commutation_founded=1;//kci=0;	case -8:if(Error_State.all==0){start_pwm(&htim1);motor_on=1;}break;case 1:SendMessage("case0x0f3333\r\n");//测试用case 3:target_speed_now=real_speed_filter*1000;target_pos_now=pos_actual;	speed_demand=real_speed_filter;position_demand=pos_actual;case 4:case 2:case 5:case 7:	//snprintf(tmp,sizeof(tmp),"mode is %d",commutation_founded);sprintf(tmp,"mode is %d",commutation_founded);//按照 十进制 打印 communtation_founded SendMessage(tmp);//测试用if(commutation_founded==0){find_commutation();delay_ms(1);}if(commutation_founded==1){if(Error_State.all==0){start_pwm(&htim1);motor_on=1;}}break;default:break;}}SendMessage("case0x0f4444\r\n");//测试用break;case 0x06:SendMessage("case06\r\n");//测试用stop_pwm(&htim1);motor_on=0;break;case 0x86:SendMessage("case86\r\n");//测试用stop_pwm(&htim1);motor_on=0;drv8301_error=0;Error_State.all=0;ENC_Counting_Error=0;break;default:break;}control_word_b=control_word;}if(Error_State.all){SendMessage("ifError_State\n");//测试用stop_pwm(&htim1);motor_on=0;	}
}

函数执行过程:

1、在void Auto_reserve_process(void)
在这里插入图片描述
control_word.all=0x06(初始值)control_word_b.all=0x00(初始值)所以它会走if(control_word.all!=control_word_b.all)分支
2、在if分支中, switch(control_word.all)分支走的是case 0x06,执行了如下代码:
在这里插入图片描述
3、control_word_b=control_word;使得control_word_b=0x06
4、Error_State.all=0x00000008,所以执行了如下代码:
在这里插入图片描述
然后每次进来control_word.allcontrol_word_b.all都不相等在这里插入图片描述
会一直执行如下函数:
在这里插入图片描述

所以测试串口的程序会一直发送

在这里插入图片描述


http://chatgpt.dhexx.cn/article/8BwDnEdx.shtml

相关文章

重新激活“HTTP错误代码402”,释放Web 3.0的潜力(下)

发表时间&#xff1a;2022年3月7日 信息来源&#xff1a;coingeek.com 原文作者&#xff1a;Jerry Chan 在上一篇文章中&#xff0c;我们概述了Web 3.0的潜力&#xff0c;也就是为互联网提供了一个变现层级。我们还略加提及了IPv6将为这种全新的互联网模式带来的可能性。那么&a…

CANOPEN使用心得1-cia301、cia402简单提要

canopen简单提要 can总线 can特点&#xff1a;多主控制、高达1M通讯速度、通讯校验、 错误检测处理及恢复等&#xff0c;can总线通讯接口规定了CAN协议的物理层和数据链路层功能。 canopen协议 canopen协议属于应用层协议&#xff0c;是由一系列子协议组成&#xff0c;分为通…

CiA402驱动架构

原文&#xff1a;https://blog.csdn.net/huangxianxinalice/article/details/8706684 自version4.30以后的SSC都包含有一个简单的CiA402驱动架构的应用程序&#xff08;如[1]描述&#xff09;。这个应用提供了一个接口在电机控制程序和通信层之间。 下面的特性被支持 - CiA4…

计算机考研402,考研402分经验谈

考研402分经验谈 作者 小坦克 次阅读 2008-05-13 考研是个痛苦却充实的过程。尤其对我而言。 我考的是哈尔滨工业大学企业管理专业。总分402&#xff0c;英语82&#xff0c;政治80&#xff0c;数学三111&#xff0c;专业课129. 我是07级毕业生。本来应该得到系里保送研究生得机…

语音数据采集-实时语音数据可视化

1、安装依赖 pip install pyaudiopip install pylab 2、语音数据展示 import pyaudioimport numpy as np CHUNK 4096 # 每次采集的数据点数RATE 44100 # 采样频率 ppyaudio.PyAudio() # 启动类streamp.open(formatpyaudio.paInt16,channels1,rateRATE,inputTrue, …

Speech | 提取语音(数据集)的语音特征合集

本文主要讲解了提取数据集的一些主要工具&#xff0c;以及如何使用这些工具&#xff0c;包含安装以及运行命令。 提取语音&#xff08;数据集&#xff09;的语音特征工具&#xff08;Extract audio features toolkits&#xff09; • openSMILE • COVAREP • ESPNet • YAAF…

简单的语音数据集制作方案

众所周知&#xff0c;深度学习现阶段还是以数据为驱动&#xff0c;然后我们需要simsiam等的自监督算法来自动标注数据集以及特征&#xff0c;但是初始阶段还是回到我们的音频数据本身。 我们提取音频特征有数种方式&#xff0c;首先是可以直接进行音频波形的提取&#xff1a; …

数据集 | 基于语音(Speech)/多模态(Multimodal)的情绪识别数据集,格式及下载

本文主要介绍了一些常用的语音&#x1f5e3;识别数据集&#xff0c;文件格式以及下载地址&#xff1a; 目录 1.IEMOCAP Emotion Speech Database(English) 2.Emo-DB Database(German) 文件命名 对象 3.Ryerson Audio-Visual Database of Emotional Speech and Song (Engli…

历史最全开放语音/音频数据集整理分享

本资源整理了40多个语音和音频处理相关的开源数据集&#xff0c;分享给有需要的朋友。 资源整理自网络&#xff0c;源地址&#xff1a;https://github.com/jim-schwoebel/voice_datasets 有两种主要类型的音频数据集&#xff1a;语音数据集和音频事件/音乐数据集。 语音数据集…

语音识别数据集-TIMIT数据集-中文超详细解析

TIMIT数据集 前言 该文章会详细介绍TIMIT数据集的文件组成、内部文件格式以及如何使用TIMIT数据集。同时还会介绍TIMIT是如何组织数据以及划分训练集与测试集的&#xff0c;可以为今后自己构建数据集提供一种思路。 关键词&#xff1a;TIMIT数据集、语音识别、音素、人工音频…

语音增强数据集总结【持续更新】

语音增强数据集总结 语音增强的第一步一般是准备数据&#xff0c;包含带噪语音和纯净语音。一般这些数据都是人工合成的&#xff0c;以纯净语音和噪声数据为基础即可合出带噪语音信号。以下介绍一些语音增强领域常用的数据集。 纯净语音 Common Voice(2019首次发布&#xff…

DuDuTalk语音工牌:语音数据分析在销售场景的应用价值

在现今这个数字时代&#xff0c;企业需要更高效、更有效地沟通和合作。语音数据的收集和分析能够增加销售团队和客户之间的联系&#xff0c;同时提高销售闭合率。因此&#xff0c;了解和利用销售沟通语音数据的价值&#xff0c;是现代企业所必须的。 销售沟通语音数据指的是在…

VoxCeleb1 语音数据集下载

前言 VoxCeleb1 是广泛使用的 说话人识别、验证 数据集。由于是从 YouTube 视频中提取&#xff0c;有比较丰富的噪声。&#xff08;有空补介绍&#xff09;由于我只使用音频数据&#xff0c;这里只介绍音频数据相关的下载流程。 如果可以使用谷歌表单和翻译软件应该就可以顺利…

语音识别之语音数据预处理

Email&#xff1a;ht0909mail.ustc.edu.cn 原创内容&#xff0c;转载请标明 数据集 1.清华大学THCHS30中文语音数据集 data_thchs30.tgz http://cn-mirror.openslr.org/resources/18/data_thchs30.tgz test-noise.tgz http://cn-mirror.openslr.org/resources/18/test-noi…

中文语音识别数据集总结

目录 OpenSLR国内镜像1.Free ST Chinese Mandarin Corpus2.Primewords Chinese Corpus Set 13.爱数智慧中文手机录音音频语料库&#xff08;Mandarin Chinese Read Speech &#xff09;4.THCHS305.ST-CMDS6.MAGICDATA Mandarin Chinese Read Speech Corpus7.AISHELL7.1 AISHELL…

语音数据集整理

语音数据集整理 目录 1.Mozilla Common Voice. 2 2.翻译和口语音频的大型数据库Tatoeba. 2 3.VOiCES Dataset 3 4. LibriSpeech. 4 5.2000 HUB5 English&#xff1a;... 4 6.VoxForge&#xff1a;... 4 7.人类语音的大规模视听数据集 &#xff08;VoxCeleb&#xff09;…

语音数据集

最大的语音数据下载网站&#xff1a; openslr.org vox-celeb说话人识别数据集&#xff1a;无法下载 OpenSpeaker之声纹数据整理 - 知乎本文是OpenSpeaker系列的第二篇文章&#xff0c;全系列可参考这篇文章或者文末的专栏&#xff1a; 蘑菇炖提莫&#xff1a;OpenSpeaker&…

Ubuntu 16.04网络配置

A lazy youth, a lousy age. 1.用root账号进行登录。Files–>Computer–>etc–>network–>interfaces 2.使用以下命令可查看网卡编号、IP地址、子网掩码。 ifconfig3.使用以下命令可查看网关号。 route4.最后&#xff0c;在interfaces中填写配置信息。 2021.10…

Ubuntu20配置网络 ssh

Ubuntu20配置网络 ssh Ubuntu20的网络配置文件位置: /etc/netplan/01-network-manager-all.yaml确定要配置的地址配置VMnet8地址设置虚拟网络地址配置ubuntu地址 Ubuntu20的网络配置文件位置: /etc/netplan/01-network-manager-all.yaml 确定要配置的地址 VMnet8: 192.168.12…

Ubuntu 14.04 网络配置

VMware中网络设置有三种&#xff0c;分别是&#xff1a;NAT、桥接和Host-only。本文仅说明NAT连接&#xff0c;配好后可让虚拟机上网&#xff0c;操作简单图文并茂。 1、首先打开虚拟机的设置 2、设置成NAT模式 3、打开虚拟网络编辑器 4、打开权限 5、设置虚拟网络编辑器为…