请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm8s003F3带编码器

[复制链接]
fangli 提问时间:2022-11-3 16:45 / 未解决
//旋转编码器初始化
void Encoder_Init(void)
{
  //GPIO_DeInit(GPIOC);//恢复GPIOD口的寄存器默认值
  //GPIO_Init(GPIOC, GPIO_PIN_6 , GPIO_MODE_IN_FL_NO_IT);//上拉输入无中断功能
  //GPIO_Init(GPIOC, GPIO_PIN_7 , GPIO_MODE_IN_FL_NO_IT);//上拉输入无中断功能

//TIM1_DeInit();//恢复寄存器的默认值

//TIM1->CR1   &=0xFE; //CEN='0'失能计数器,关闭计数
CLK->PCKENR1 |=0x80; //开启TIM1时钟

//TIM1->SMCR  &=0xfc;
TIM1->SMCR  |=0x02; //SMS='011'编码器模式3,所有的输入均在上升沿和下降沿有效

TIM1->CCMR1 |=0x1; //CC1S='01'通道位输入CC1通道映射在TI1FP1上
TIM1->CCMR2 |=0x1; //CC2S='01'通道位输入CC2通道映射在TI2FP2上

//TIM1->CCER1 &=0**; //CC1P='0',CC2P='0'

//对ARR寄存器进行付初始值为最大值,因为在编码器模式下,计数器计数值的范围是0-ARR寄存器,如果不付初始值,哪ARR就为0,当旋转编码器时,计数值会从0变化到0,就看不到编码器的旋转过程了
TIM1->ARRH   =0xEA; //自动重装载高位
TIM1->ARRL   =0x60; //自动重装载地位TIM1中断溢出值:0X1F40=8000

TIM1->IER   |=0x1; //UIE='1'允许更新中断,开中断

TIM1->CNTRH = 0xea;//encodeNumber / 256;
TIM1->CNTRL =0x56; // encodeNumber % 256;  //TIM1_CNT起始计数值:4000

//TIM1_ITConfig(TIM1_IT_UPDATE,ENABLE);//中断配置为更新中断
//ITC_SetSoftwarePriority(ITC_IRQ_TIM1_OVF, ITC_PRIORITYLEVEL_0);//设置中断优先级

//ITC->ISPR5 = 0xDF;  //18AD中断优先级设置为1.10为0,01为1,00位2,11为3
//ITC->ISPR6 = 0xFF;  //23T1中断优先级设置为3,默认,优先级最高

TIM1->CR1   =0x01; //CEN='1'使能计数器,启动计数

//TIM1_Cmd(ENABLE);//启动定时器1
}

收藏 评论7 发布时间:2022-11-3 16:45

举报

7个回答
fangli 回答时间:2022-11-3 16:48:01
大家好!我今天试了一下8S的TIM1的编码器功能,发现无论怎么该,运行起来无法进入定时器TIM1的对应中断。#pragma vector=0xD__interrupt void TIM1_UPD_OVF_TRG_BRK_IRQHandler(void)
{}

fangli 回答时间:2022-11-3 17:06:47
PC6和PC7口线没有问题我用示波器测过,波形很好,另外,我用外部中断方式也试过了,口线没毛病。
butterflyspring 回答时间:2022-11-4 09:49:30
可以调试检查一下中断使能位和计数器的值是否溢出并使得更新标志置位。
fangli 回答时间:2022-11-4 10:07:15
butterflyspring 发表于 2022-11-4 09:49
可以调试检查一下中断使能位和计数器的值是否溢出并使得更新标志置位。
...

您好!我主程序中断允许开的,并且我将TIM1->IER =0XFF;定时器TIM1所有相关中断事件多打开了,还是无法进入相关中断。不用编码器模式,定时器中断正常开启。
fangli 回答时间:2022-11-4 11:31:06
我用外围电路一致的主控换成STM32F103,编码器功能试过了,没有问题。但是换成STM8S003就整不起来
fangli 回答时间:2022-11-4 17:04:31
大家好!这个问题已经解决了,搞了2天,最后翻了手册搞懂了。
网络孤客 回答时间:2022-11-6 10:31:42
fangli 发表于 2022-11-4 17:04
大家好!这个问题已经解决了,搞了2天,最后翻了手册搞懂了。

能写上什么原因吗,为以后需要的兄弟提供经验。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版