前言:增量式编码器在实际应用中还是很常见。 stm32的定时器带的也有编码器模式。 所用的编码器是有abz三相,其中ab相是用来计数,z相输出零点信号。 ab相根据旋转的方向不同,输出的波形如下图所示:
第一步:具体配置如下图:
重点说明:一、如果编码模式设置为 encoder mode ti1 and ti2 则会默认检测ab相的上升沿与下降沿;
每一个上升沿和下降沿都触发计数,所以每转一格计数器就会+4;那么上图计数周期设置为400; 也就是编码器转100格,计数器就会置零,重新开始计数!
二、关于polarity参数:这个参数的意思是在检测到上升沿的时候就触发encoder捕获ab相的值,而并不是这里设置的是上升沿就只检测ab相的上升沿,下降沿还是同样会计数的。
第二步:可以根据自身需要在nvic 中断控制器中配置中断响应优先级。 这里的配置方法可以参考前面几章!
第三步:代码分析:static void mx_tim4_init(void){ /* user code begin tim4_init 0 */ /* user code end tim4_init 0 */ tim_encoder_inittypedef sconfig = {0}; tim_masterconfigtypedef smasterconfig = {0}; /* user code begin tim4_init 1 */ /* user code end tim4_init 1 */ htim4.instance = tim4; htim4.init.prescaler = 0; htim4.init.countermode = tim_countermode_up; htim4.init.period = 400; htim4.init.clockdivision = tim_clockdivision_div1; htim4.init.autoreloadpreload = tim_autoreload_preload_enable; sconfig.encodermode = tim_encodermode_ti12; sconfig.ic1polarity = tim_icpolarity_falling; sconfig.ic1selection = tim_icselection_directti; sconfig.ic1prescaler = tim_icpsc_div1; sconfig.ic1filter = 15; sconfig.ic2polarity = tim_icpolarity_falling; sconfig.ic2selection = tim_icselection_directti; sconfig.ic2prescaler = tim_icpsc_div1; sconfig.ic2filter = 15; if (hal_tim_encoder_init(&htim4, &sconfig) != hal_ok) { error_handler(); } smasterconfig.masteroutputtrigger = tim_trgo_reset; smasterconfig.masterslavemode = tim_masterslavemode_disable; if (hal_timex_masterconfigsynchronization(&htim4, &smasterconfig) != hal_ok) { error_handler(); } /* user code begin tim4_init 2 */ hal_tim_encoder_start(&htim4, tim_channel_all); //启动编码器接口 /* user code end tim4_init 2 */}//主函数里面调用计数值 while (1) { // enc_count:获取计数个数 enc_count = __hal_tim_get_counter(&htim4); //若需要检测编码器转了多少格,记得要/4,因为转一格是+4; //enc_count = __hal_tim_get_counter(&htim4)/4; /* user code end while */ /* user code begin 3 */ }
Python怎么换行输入另一条语句
产业互联网时代到来 新经济企业全面探索To B业务
是什么原因导致日系家电深陷泥潭 中国电子企业又是否能借此崛起
中科曙光异构智能算力技术加速计算材料科学创新变革
半导体功率转换拓扑架构和挑战 宽带隙半导体的技术进展
STM32CubeMx定时器编码器模式基本使用方法
实现Modbus数据转发保存到mysql sqlserver数据库的解决方案
固液混合铝电解电容主要的关键技术有哪些
监控技术施工工艺及注意事项
苹果新MacBook Pro问题不断,官方未做任何回应
智能电视将配备更完善的生态体系,创造更佳的使用体验
机器视觉 | 柔性振动盘上物料的正反面区分
一种基于无线传感网和地磁检测技术的车位检测系统设计
植物冠层分析仪的技术参数
微软CEO纳德拉:全球AI监管逐步达成共识
RN4678蓝牙具有 UART透明传输功能
什么是低功耗蓝牙配对?什么又是绑定?
骑行可不可以带耳机?职业骑手都在带的蓝牙耳机,非常安全
中国建设一个加氢站有多难?
e络盟推出一体化pi-top [4]计算机以支持STEM学习