本人在大四工作实习期间,由于工作需要,需要使用STM8单片机测量一个方波脉冲的频率,一开始想要使用定时器捕获,可是需要测量的脉冲频率较高,用捕获测量不仅测量不准确,而且效率低下。于是乎想到了用外部计数TIMx_ETR功能测量!
真正的问题来了,之前从来没用过STM8的外部脉冲计数功能,而且网上也是在找不到如何配置外部脉冲计数模式。而公司的进度还在不断的向前赶,更蛋疼的是STM8的绝大多数资料手册全是英文版的,不像STM32单片机那样有很多中文版。这下可急坏了笔者。可还是硬着头皮连夜加班的看英文文档。
经过2天的努力煎熬,笔者终于找到了解决方法,那个兴奋啊,无以言表。接下来话不多说,赶紧向广大网友分享STM8单片机的TIMx_ETR的配置技巧:
1:其实STM8单片机的TIMx_ETR功能对STM8S系列和STM8L系列的配置方法是不相同的;STM8S是标准版,而STM8L是低功耗版;
对于STM8S系列的外部计数配置,需要通过向FLASH内修改选项字节来激活TIMx_ETR的重映射功能,通过查看手册的“选项字节”那部分就可以发现,在STM8S的4803h地址的重映射选项里有个选项字节叫OPT2,当向OPT2字节写入0X20时,便可以将PB3引脚映射为TIMx_ETR外部脉冲计数功能引脚。配置完选项字节之后另外还有一个值得注意的问题是:此时该PB3引脚的管脚必须配置成“上拉输入且无外部中断”,即库函数里的 GPIO_Init(GPIOB, GPIO_Pin_3, GPIO_Mode_In_PU_No_IT);这一句。现附程序如下所示:
{
TIM1_DeInit();
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1, ENABLE);// 开启定时器2的时钟,
FLASH_Unlock(FLASH_MEMTYPE_DATA); //解锁
while(FLASH_GetFlagStatus(FLASH_FLAG_DUL) == RESET);
FLASH_ProgramOptionByte(0x4803,0x20); //选项字节,向0X4803地址写入0X20
u8 status;
status=FLASH_WaitForLastOperation(FLASH_MEMTYPE_DATA);
if(status==FLASH_STATUS_SUCCESSFUL_OPERATION)
{}
FLASH_Lock(FLASH_MEMTYPE_DATA);
TIM1_ETRClockMode2Config(TIM1_EXTTRGPSC_DIV2,
TIM1_EXTTRGPOLARITY_INVERTED,0x00); //外部计数配置
TIM1_TimeBaseInit(1,TIM1_COUNTERMODE_UP,9999,0);
TIM1_ITConfig(TIM1_IT_UPDATE,ENABLE);
TIM1_SetCounter(0x0);
TIM1_ClearITPendingBit(TIM1_IT_UPDATE); //参考库
TIM1_Cmd(ENABLE);
}
2:然而不是所有STM8单片机都需要改选项字节,对于STM8L系列单片机就不必修改选项字节,直接配置即可,附程序代码如下:
TIM2_DeInit();
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, ENABLE);// 开启定时器2的时钟
TIM2_ETRClockMode2Config(TIM2_ExtTRGPSC_DIV2,
TIM2_ExtTRGPolarity_Inverted,0x00);
TIM2_TimeBaseInit(TIM2_Prescaler_1,TIM2_CounterMode_Up,9999);//需不需要加?
TIM2_ITConfig(TIM2_IT_Update,ENABLE);
TIM2_SetCounter(0x0);
TIM2_ClearITPendingBit(TIM2_IT_Update); //参考库
TIM2_Cmd(ENABLE);
希望能帮助到你!
上一篇:单片机编程技巧--功能强大的时钟中断
下一篇:关于单片机连接ESP8266模块截取其回显内容
推荐阅读最新更新时间:2024-03-16 16:17
设计资源 培训 开发板 精华推荐
- 领取评测任务,免费体验NUCLEO-L452RE开发套件
- 快来访问泰克高速串行通信专题 配置您的专属解决方案 赢好礼!
- Microchip 有奖直播|满足汽车电池管理系统 (BMS) 不断发展的安全标准
- 评论有礼|【Discovery 】走进TI毫米波雷达世界 快速获得设计技能
- 大学必备设计课表出炉,先睹为快!
- 免费申请|Maxim 高性能模拟工具包(内含78个器件)
- 下载有礼:2017年泰克亚太专家大讲堂第二期: 100G/200G/400G通讯标准发展趋势及解决方案
- 下载泰克电源设计测试方案+图文攻略 帮助工程师解决电源效率问题。有好礼
- TI工业月技术方案深度学习
- 瓜分2000元新年开工红包!贸泽电子邀你元宵猜灯谜