OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4780|回复: 0

分享STM8S TIM1_CH1捕获及 Option Byte设置

[复制链接]

5

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2015-12-3
在线时间
36 小时
发表于 2016-3-11 22:09:12 | 显示全部楼层 |阅读模式
本帖最后由 方圆 于 2016-3-11 22:16 编辑

      入门STM8,不可避免的遇到了映射问题,这不,折腾了一天时间,终于把TIM1_CH1的捕获调通了。
      第一点要关注的是,【TIM1_CH1】是复用功能,需要映射后才能正常使用。附件里有相关文档可以查看,也包括其他外设映射所对应的option byte.
      第二点是触发输入信号、触发方式的设置,可以通过寄存器直接设置,但是我更喜欢用库函数设置。     
寄存器版:
     //TIM1->SMCR  |= 0x54;//配置TIM1_SMCR寄存器的SMS=100,选择定时器为复位触发模式;
                                      //配置TIM1_SMCR寄存器的TS=101 ,选择TI1 作为输入源。

库函数版:
      // 选择有效的触发输入信号:选源触发源 ti1fp1
      TIM1_SelectInputTrigger(TIM1_TS_TI1FP1);
      //  触发方式:复位模式
      TIM1_SelectSlaveMode(TIM1_SLAVEMODE_RESET);
完整初始化函数:
void TIM1_Config(void)
{
    //设置为缺省值
    TIM1_DeInit();
    // 1分频,TIM1时钟为16M
    TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, 3999, 0);
    // CC1通道被配置为输入,IC1映射在TI1FP1上
    // 使能输入捕获,TI1FP1上升沿触发
    TIM1_ICInit(TIM1_CHANNEL_1, TIM1_ICPOLARITY_RISING, TIM1_ICSELECTION_DIRECTTI, TIM1_ICPSC_DIV1, 0x00);
    // 选择有效的触发输入信号:选源触发源 ti1fp1
    TIM1_SelectInputTrigger(TIM1_TS_TI1FP1);
    //  触发方式:复位模式
    TIM1_SelectSlaveMode(TIM1_SLAVEMODE_RESET);
    //TIM1->SMCR  |= 0x54;//配置TIM1_SMCR寄存器的SMS=100,选择定时器为复位触发模式;
                         //配置TIM1_SMCR寄存器的TS=101 ,选择TI1 作为输入源。
    // 使能更新ch1中断
    TIM1_ITConfig(TIM1_IT_CC1, ENABLE);
    // 自动重装载使能
    TIM1_ARRPreloadConfig(ENABLE);
    TIM1_Cmd(ENABLE);
}

STM8S TIM1_CH1捕获.zip

8.94 MB, 下载次数: 6344

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 01:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表