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

什么网站可以发布有偿做项目腾讯云建站

什么网站可以发布有偿做项目,腾讯云建站,如何去掉网站后缀wordpress,政府网站建设研究最近在学习AM32电调的2.18版本的源码,我用的硬件是AT32F421,整理了部分流程处理,内容的颗粒度是按自己的需要整理的,发出来给有需要的人参考。按自己的理解整理的,技术能力有限,可能理解有误,欢…

最近在学习AM32电调的2.18版本的源码,我用的硬件是AT32F421,整理了部分流程处理,内容的颗粒度是按自己的需要整理的,发出来给有需要的人参考。按自己的理解整理的,技术能力有限,可能理解有误,欢迎纠正。


注:lida2003博主是个大牛。写的无刷电调的理论和AM32相关知识点介绍的比较系统,介绍的很详细,有需要的同学可以去参考。我对电调这块是外行,只是刚入门学习。这里重点是代码理解的整理分析,他哪里写了很多原理性的知识。

https://blog.csdn.net/lida2003/category_12753961.html?spm=1001.2014.3001.5482

        这是第七篇,本篇把剩下的代码做个简单介绍,重点是介绍的电调相关的功能,外设的基础用法就不解读了。本篇也会加一些对当前代码的理解。

        本来不想写这篇的,没啥技术点,为了代码分析的完整性,还是整理出来了,

        DroneCAN这块目前还没学,暂时先空着。

        这篇写完算是代码了一轮了。后面可能还会补一些调试中的波形分析

1、sounds.c

电机发音处理。

六个相位的波形图

发音就是注入一组PWM波形,频率决定音调,高电平时长决定音量,注入时长就是发音时长。

为什么发一个音以后需要换一个相位?

1)如果不换相位,时间长了,电机就转起来了,到达电磁阻力最小点后,电流会变的很大。

2)轮流工作,让电机3个相负担均衡。

解读一个函数playStartupTune

void playStartupTune()//发启动音
{__disable_irq();  //只有在电机不转的时候才能发音,这里屏蔽中断避免发音被打断,或者重入if (eepromBuffer.tune[0] != ERASED_FLASH_BYTE) //如果编辑了启动音,可以让电调播放音乐{playBlueJayTune();}else {SET_AUTO_RELOAD_PWM(TIM1_AUTORELOAD);//设置ARR,波形的周期setCaptureCompare();//设置音量comStep(3); 		//切换到一个相位						// activate a pwm channelSET_PRESCALER_PWM(55);	//设置预分频,也就是频率					// frequency of beepdelayMillis(200);		//发音时长					// duration of beepcomStep(5);			//切换到另一个相位	SET_PRESCALER_PWM(40);						// next beep is higher frequencydelayMillis(200);comStep(6);SET_PRESCALER_PWM(25);						// higher again..delayMillis(200);allOff();		  //发音完,6个相位都关闭							// turn all channels low againSET_PRESCALER_PWM(0);	//恢复预分频					// set prescaler back to 0.signaltimeout		= 0; //置零,防止油门超时}SET_AUTO_RELOAD_PWM(TIMER1_MAX_ARR);	//恢复ARR__enable_irq();				//恢复中断
}

其他发音函数处理和差不多,只是响几下,时长,音调的区别

不足点

发音的时候只占用一个通道,音量比较小。如果音量比较大的还可能造成电机转动起来。BLH的发音不存在这样的不足,可以借鉴。

2、signal.c

这个文件在《AM32电调学习解读四:输入信号处理》都介绍了,不再重复

3、kiss_telemetry.c

makeTelemPackage:串口返回状态信息构建,包括voltage,current,consumption,e_rpm电转速信息

makeInfoPacket:返回配置参数信息

4、functions.c

getAbsDif:绝对值
void delayMicros:等待微秒
void delayMillis:等待毫秒
long map:映射函数
void gpio_mode_QUICK:GPIO快配
void gpio_mode_set:GPIO模式修改

5、firmwareversion.c

只是在这个地址存了个FILE_NAME

6、dshot.c

这个文件在《AM32电调学习解读四:输入信号处理》都介绍了,不再重复

7、WS2812.c

这里的炫彩灯使用的是模拟GPIO方式模拟实现的

定时器方式实现可以参考如下文档

STM32定时器驱动WS2812 - UENG - 博客园

注意点:send_LED_RGB有屏蔽中断的处理,目前值在上电的时候调用和解锁的时候调用。

但是运行时调用需小心,屏蔽中断有风险

8、serial_telemetry.c

send_telem_DMA:串口DMA发送触发

telem_UART_Init:串口初始化

9、phaseouts.c

PWM_ENABLE_BRIDGE:这个宏没理解什么意思,没有这个电调不好验证。从代码上看不定义这个宏,可以使用渐变力刹车

我用的F421使用的高边PWM驱动

proportionalBrake:高边输出模式,底边复用输出模式

相位基本操作单元

allOff:全浮空

comStep:换相操作,包括比较器管脚切换

fullBrake:全刹,底边全高

allpwm:3个高边全PWM,底边看是否开互补

twoChannelForward():有刷模式用的两边PWM驱动

 twoChannelReverse():有刷模式用的两边PWM驱动

10、peripherals.c

外设初始化,参考

AM32电调学习解读一:Main函数初始化流程图-CSDN博客

11、IO.c

油门输入处理的端口模式切换和初始化处理

12、eeprom.c

save_flash_nolib:保存Flash的非库函数实现,效率比较高,而且自带擦除功能

read_flash_bin:读取Flash

13、comparator.c

getCompOutputLevel:获取比较器输出

maskPhaseInterrupts:禁用比较器中断

enableCompInterrupts:使能比较器中断

changeCompInput:修改比较器中断和处理速度,转速越高比较器速度越高

14、ADC.c

ADC_Init:adc初始化

 ADC_DMA_Callback:ADC DMA中断回调函数

getConvertedDegrees:温度计算

http://www.dtcms.com/wzjs/394654.html

相关文章:

  • 没有公司做网站营销网站建设哪家好
  • 网站免费视频新手如何找cps推广渠道
  • 国家城乡与住房建设部网站优书网
  • 网站字体只能用百度推广管理系统
  • 信誉好的徐州网站建设软文推广300字
  • 网站百度贴吧小红书关键词排名
  • 做网站时给图片添加链接搜索网站哪个好
  • 深圳专业做网站的公司哪家好石家庄seo顾问
  • 机顶盒做网站如何制作自己的网站教程
  • 网站开发与管理内容上海做网站优化
  • 做pc网站如何实时预览二手交易平台
  • 大学生做的网站湖南靠谱的关键词优化哪家好
  • wordpress qq微信登陆地址北京seo怎么优化
  • 全能网站建设pdfseo简介
  • 门店广告牌设计广州关键词优化外包
  • 古玩网站建设意义网络公司网络营销推广方案
  • 做导航网站犯法吗百度搜索优化怎么做
  • 网站如何上传广州新闻24小时爆料热线
  • 集团网站品牌建设特点aso优化排名推广
  • 山东网站建设哪家专业seo搜索引擎
  • 成交型网站建设方案济宁百度推广公司有几家
  • 公司做网站需要准备什么资料百度推广登录平台登录
  • 北京企业官网网站建设哪家好友链申请
  • 潍坊米搜网站建设seo整站优化什么价格
  • 贵州省住房城乡建设部网站seo关键词排名软件流量词
  • 网站的v2信誉认证怎么做成品网站货源1688在线
  • 网站建设一般多少费用南京seo网站优化
  • dede cms 网站模板优化关键词推广
  • 做网站需要画原型图么白杨seo教程
  • 织梦网站怎样做seosemi是什么意思