专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
请问:stm单片机定时器可以在程序运行中重复初始化吗
2019-07-21 03:45
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
18875
3
1264
比如我现在定时器1设置为外部时钟模式触发引脚是CH1,然后我想再某个时刻改变触发引脚为CH2.这样重新配置定时器可以吗?谢谢
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-21 09:41
当然是可以的
加载中...
吃葡萄吐葡萄皮
2楼-- · 2019-07-21 13:20
本帖最后由 吃葡萄吐葡萄皮 于 2019-3-30 10:08 编辑
正点原子 发表于 2019-3-29 23:02
当然是可以的
感谢原子哥回复,是这样的我用的是STM8S105单片机根据数据手册上说只有TIM1可以设置为外部计数模式,在实际程序中初始化CH1触发计数或者CH2触发计数都可以实现,但是比如说我刚开始初始化CH1进行外部计数,然后再程序中过段时间后初始化为CH2进行外部计数,这时候就不行了,就算再切换到CH1计数也不行了,难道是我的初始化方式有问题吗?一下是我的初始化函数,单独初始化都可以工作(引脚初始化已再别的函数中完成)。
void TIM1_CH1_Init()
{
/*定时器配置*/
TIM1_CR1=0;//开启计数器
TIM1_ARRH=0xFF;
TIM1_ARRL=0xFF;
TIM1_PSCRH=0;
TIM1_PSCRL=0;
TIM1_CCMR1|=0xF1;//设置滤波CC1通道被配置为输入, IC1映射在TI1FP1上;
TIM1_CCER1|=0x02;//捕捉发生在TI1F的低电平或下降沿
TIM1_SMCR|=0x57;//101:滤波后的定时器输入1(TI1FP1)
TIM1_CR1=1;//开启计数
}
void TIM1_CH2_Init()//PD4外部时钟模式
{
/*定时器配置*/
TIM1_CR1=0;//开启计数器
TIM1_ARRH=0xFF;
TIM1_ARRL=0xFF;
TIM1_PSCRH=0;
TIM1_PSCRL=0;
TIM1_CCMR2|=0xF1;//设置滤波CC2通道被配置为输入, IC2映射在TI2FP2上;
TIM1_CCER1|=0x20;//捕捉发生在TI1F的低电平或下降沿
TIM1_SMCR|=0x67;//101:滤波后的定时器输入2(TI2FP2)
TIM1_CR1=1;//开启计数器
}
拜谢!!!!!
加载中...
吃葡萄吐葡萄皮
3楼-- · 2019-07-21 17:16
问题找到了,再配置新的CH2时候,把CH1寄存器清空。以前用stm32都是库函数,没注意到这些。
加载中...
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
STM32开发板免费用活动
7 个回答
stm32 处理 DHT11占用太多时间,大家程序是怎么设计的
8 个回答
分享一个STM32单片机做的离线编程器代码
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
感谢原子哥回复,是这样的我用的是STM8S105单片机根据数据手册上说只有TIM1可以设置为外部计数模式,在实际程序中初始化CH1触发计数或者CH2触发计数都可以实现,但是比如说我刚开始初始化CH1进行外部计数,然后再程序中过段时间后初始化为CH2进行外部计数,这时候就不行了,就算再切换到CH1计数也不行了,难道是我的初始化方式有问题吗?一下是我的初始化函数,单独初始化都可以工作(引脚初始化已再别的函数中完成)。
void TIM1_CH1_Init()
{
/*定时器配置*/
TIM1_CR1=0;//开启计数器
TIM1_ARRH=0xFF;
TIM1_ARRL=0xFF;
TIM1_PSCRH=0;
TIM1_PSCRL=0;
TIM1_CCMR1|=0xF1;//设置滤波CC1通道被配置为输入, IC1映射在TI1FP1上;
TIM1_CCER1|=0x02;//捕捉发生在TI1F的低电平或下降沿
TIM1_SMCR|=0x57;//101:滤波后的定时器输入1(TI1FP1)
TIM1_CR1=1;//开启计数
}
void TIM1_CH2_Init()//PD4外部时钟模式
{
/*定时器配置*/
TIM1_CR1=0;//开启计数器
TIM1_ARRH=0xFF;
TIM1_ARRL=0xFF;
TIM1_PSCRH=0;
TIM1_PSCRL=0;
TIM1_CCMR2|=0xF1;//设置滤波CC2通道被配置为输入, IC2映射在TI2FP2上;
TIM1_CCER1|=0x20;//捕捉发生在TI1F的低电平或下降沿
TIM1_SMCR|=0x67;//101:滤波后的定时器输入2(TI2FP2)
TIM1_CR1=1;//开启计数器
}
拜谢!!!!!
一周热门 更多>