想用STM8S103FP6的TIM2的捕获功能测仪方波的脉宽,但每次采集回来的数都是0。 ///////////////////////////////////TIM2初始化/////////////////////////////////////////// void Tim2_Init(void) { TIM2_DeInit(); TIM2_TimeBaseInit(TIM2_PRESCALER_8, 0x0000); TIM2_ICInit(TIM2_CHANNEL_1, TIM2_ICPOLARITY_RISING, TIM2_ICSELECTION_DIRECTTI, TIM2_ICPSC_DIV1, 0x00); TIM2_ITConfig(TIM2_IT_CC1, ENABLE); TIM2_ARRPreloadConfig(ENABLE); enableInterrupts(); TIM2_Cmd(ENABLE); } /////////////////////////////////TIM2中断////////////////////////////////////////////// INTERRUPT_HANDLER(TIM2_CAP_COM_IRQHandler, 14) { /* In order to detect unexpected events during development, it is recommended to set a breakpoint on the following instruction. */ TIM2_ClearITPendingBit(TIM2_IT_CC1); TCS_OK; yz=TIM2_GetCapture1(); i++; if(i==0xff) { i=0; } } /////////////////////////////main函数中UART发送部分/////////////////////////////////// UART1_SendData8(yz/256); UART1_SendData8(yz%256); |
从零开始操作STM8寄存器(风驰iCreate奉献)
【中文资料】初学STM8库函数的中文帮助软件
绝对经典的中文STM8学习手册,淘宝上学习板资料,友情大放送!
【原创教程】风驰iCreate独家开源STM8 27个例程和10多万字的pdf教程
STM8的LCD1602 4线驱动,为什么不工作
【精华资料】由零开始开发STM8
STM8S 的触摸库是如何在主程序中查询键的呢、
【精华资料】STM8的C语言编程1-14讲完整版
【精品教程】STM8系列单片机入门教程系列
STM8 第一次进中断不准【悬赏问答】
RE:【求助】STM8S103FP6的TIM2的捕获功能
RE:【求助】STM8S103FP6的TIM2的捕获功能
//[7]:0,没有成功的捕获;1,成功捕获到一次.
//[6]:0,还没捕获到低电平;1,已经捕获到低电平了.
//[5:0]:捕获低电平后溢出的次数
u8 TIM2CH2_CAPTURE_STA=0; //输入捕获状态
u16 TIM2CH2_CAPTURE_VAL; //输入捕获值
//定时器2捕获中断服务函数
INTERRUPT_HANDLER(TIM2_UPD_OVF_IRQHandler,TIM2_UPD_OVF_VECTOR)
{
u8 tsr;
static u8 led;
tsr=TIM2->SR1;
if((TIM2CH2_CAPTURE_STA&0X80)==0)//还未成功捕获
{
if(tsr&0X01)//溢出
{
if(TIM2CH2_CAPTURE_STA&0X40)//已经捕获到高电平了
{
if((TIM2CH2_CAPTURE_STA&0X3F)==0X3F)//高电平太长了
{
TIM2CH2_CAPTURE_STA|=0X80;//标记成功捕获了一次
TIM2CH2_CAPTURE_VAL=0XFFFF;
}else TIM2CH2_CAPTURE_STA++;
}
}
}
LED1_SET(led=!led);
TIM2->SR1&=~(1CCR2H;//获取当前的捕获值.
TIM2CH2_CAPTURE_VALCCER1|=1CNTRL=0; //计数器清空
TIM2CH2_CAPTURE_STA=0; //清空
TIM2CH2_CAPTURE_VAL=0;
TIM2CH2_CAPTURE_STA|=0X40; //标记捕获到了下降沿
TIM2->CCER1&=~(1
RE:【求助】STM8S103FP6的TIM2的捕获功能
RE:【求助】STM8S103FP6的TIM2的捕获功能
你解决了吗?我也是使用PD3(TIM2CH2)进不了中断
INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
这两个TIM2中断函数不一样哦