完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
编码器模式的实现
编码器模式默认使用定时器的通道1和通道2,通道3和通道4不能使用。以下为编码器模式的配置,编码器线数为1024,检测双通道的上升沿。 HAL_TIM_Encoder_Start(&htim5,TIM_CHANNEL_ALL);//编码器模式启动,写ALL为开始该定时器(TIM5)的通道1和通道2(编码器模式可自动计算)。使用编码器模式不用输入捕获 写上之后连接好编码器,电机转动后监视TIMER5的寄存器即可看到TIM_CNT向上/向下计数。通过TIM5->CNT(编码器线数)来提取计数器的值最终用CNT的值除以编码器的分辨率再乘以360来确定所转动的角度。 输入捕获实现编码器模式 原理:一个通道捕获上升沿,一个通道做IO输入。在上升沿捕获中断中进行上升沿的计数;检测IO的电平高低。当检测到上升沿,IO口电平为低时,正转;检测到上升沿,IO口电平为高时,反转。 使用定时器4的3通道来进行输入捕获,PD15检测另一波形的电平的HAL配置 定时器配置: IO配置: 若是想要在检测到上升沿时进行中断计数,需要打开中断 void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)//1000线的编码器//定时器捕获中断回调函数 { if(i == 0)//编码器的零点 { if( HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_15) != GPIO_PIN_RESET)//读取IO,正转/反转 { i = 1000; } } if( HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_15) == GPIO_PIN_RESET) { i++;//正转 } else { i--;//反转 } if(i == 1000) { i = 0; } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1874 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1658 浏览 1 评论
1143 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
759 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1963浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
789浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
612浏览 3评论
628浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
590浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 20:20 , Processed in 0.666960 second(s), Total 43, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号