完善资料让更多小伙伴认识你,还能领取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的相应技术手册。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
621 浏览 1 评论
1962 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1068 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1487 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1924 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 15:39 , Processed in 0.440725 second(s), Total 43, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号