yueming 发表于 2019-6-18 16:57:06

基于STM8L001J3 125KHZ RFID EM4100卡 请教

本帖最后由 yueming 于 2019-6-18 16:58 编辑

硬件部分已经调试完毕,示波器也可以显示出来,因为这个STM8L001 的芯片引脚很少,资源有限,对Manchester的捕获,只能通过基本定时器和外部中断方式,
来捕获高低电平,关于定时器有一个问题,我的外部中断是这样写的,定时器是这样配置的

void EXTI_Config(void)
{
GPIO_DeInit(GPIOA);
GPIO_Init(GPIOA,GPIO_Pin_2,GPIO_Mode_In_PU_IT);
EXTI_DeInit();
EXTI_SetPinSensitivity(EXTI_Pin_2,EXTI_Trigger_Rising_Falling);
TIM2_Config();
}

void TIM2_Config()
{
CLK_MasterPrescalerConfig(CLK_MasterPrescaler_HSIDiv1);
TIM2_DeInit();
/* Enable TIM2 clock */
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, ENABLE);
TIM2_TimeBaseInit(TIM2_Prescaler_64, TIM2_CounterMode_Up, 255);//定时单位4us
TIM2_ARRPreloadConfig(ENABLE);
TIM2_Cmd(ENABLE);
}

当触发了上升沿或者下降沿的时候就会进入到外部中断服务函数中,
INTERRUPT_HANDLER(EXTI2_IRQHandler, 10)


   unsigned short time;
   time= TIM2_GetCounter();
   unsigned char ucTemp;
   TIM2_SetCounter(0);



这样写对吗? 我的目的是为了测出位数据时间,高或者低电平,我的疑惑是 当边沿触发中断,进入到中断服务函数中的时候,此时读的值就是 高电平或者低电平的值吗,我用串口打印这个时间数据不对。



cici8718 发表于 2019-9-19 17:14:03

都是捕获去解码么
页: [1]
查看完整版本: 基于STM8L001J3 125KHZ RFID EM4100卡 请教