完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
新手,想用STM8S103F3P6连接EC11,记录左右旋转计数。编码器A、B脚分别连接PC3、PC4脚。
代码如下,网上STM8连接EC11资料没有,新手想学**难了。 请大师帮我看看下面几个问题: 1、假如PC3、PC4脚电路中拉高,那么GPIO初始化参数应该是GPIO_MODE_IN_FL_IT 还是 GPIO_MODE_IN_PU_IT ? 2、int8_t 类型,如果计数超过128了,会发生什么? 3、代码帮我看看,有啥问题没有,多谢多谢! |
|
相关推荐
1个回答
|
|
其实,EC11是个比较常用的一个编码器。
首先,不建议你使用STM8系列芯片做新产品开发了,可以考虑STM32c0、STM32F0这些系列,他们性价比更好。 其次,你现在基于外部中断方式针对编码脉冲进行计数、方向识别,也可以的,尤其系统功能不复杂时。 第三,针对你当前GPIO参数配置,两个都应该可以,最终还得结合你外部中断沿的选择综合考虑;如果要针对上下 沿进行捕获,选择_in_float_it. 如果只针对下沿捕获外部中断,选_pu_it更合适点,对消除抖动和干扰更有利。结合你 当前应用,到底针对什么沿产生外部中断一定要确认下来。从你ISR代码来看,上下沿触发外部中断都用到了。 第四,int8_t超过128时 会发生什么,变成负数了。如果不需要使用负数就定义成无符号数即可,即uint8_t。 第五,你贴出来的代码没看出有啥明显问题,程序逻辑靠你自己把握。 第六,ST MCU的高级或通用TIMER多支持编码器功能。比方你目前关注的STM8芯片的TIMER1是支持编码器接口的,不过 要使用它的话,你要稍微研究下这块内容。资料当然是STMCU的相应威廉希尔官方网站 手册。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32串口接受中断使用C++STL中的queue导致所有中断失效
6014 浏览 1 评论
3031 浏览 0 评论
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
1325 浏览 0 评论
3869 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
3704 浏览 4 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-11 21:15 , Processed in 0.530128 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191