立即注册
查看: 3577|回复: 2

[经验分享] STM8S TIM1_CH1捕获及 Option Byte设置

发表于 2016-6-9 15:00:00 | 显示全部楼层 |阅读模式 来自 广东省深圳市
      入门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);
}


2016-6-7 15:15 上传
文件大小:
8.94 MB
下载次数:
99
附件售价:
1 RD币  购买记录
本地下载 立即购买

16RD supports Paypal , Payment is calculated at the exchange rate of the day. Unable to download please contact 18902843661 (WhatsApp OR wechat number)

关于一牛网在微软浏览器(Microsoft Edge、IE浏览器)警报通告&解决方案!(无法下载直接更换浏览器即可)

*附件为作者发布,与本站无关,如有侵权,请联系客服删除


发表于 2016-6-21 12:08:28 | 显示全部楼层 来自 广东省潮州市
顶STM8
发表于 2016-6-22 09:28:56 | 显示全部楼层 来自 广东省深圳市
谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表