改变IO口的状态
if((x>3400 && x<3650) && (y>3700&&y<4000))
{
GPIO_SetBits(GPIOA,GPIO_Pin_3);
// printf(&quot;%d
&quot;,0);
}
if((x>3650 && x<4000) && (y>3400&&y<3600))
{
GPIO_SetBits(GPIOA,GPIO_Pin_4);
// printf(&quot;%d
&quot;,1);
}
滴答定时器
#include <includes.h>
#include &quot;systick.h&quot;
#include &quot;stm32f10x.h&quot;
void SysTick_Init(void)
{
if (SysTick_Config(SystemFrequency / 100000)) // ST3.0.0???
if (SysTick_Config(SystemCoreClock / 100000)) // ST3.5.0???
{
while (1);
}
SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;
}
中断
void EXTI3_IRQHandler(void)
{
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)) { timenow = 0; SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;// printf(&quot;%d
&quot;,1); } if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)) { printf(&quot;%d
&quot;,9); timeCh2 = timenow; printf(&quot;%d
&quot;,timeCh2) ; }
EXTI_ClearITPendingBit(EXTI_Line3);
}
void SysTick_Handler(void)
{
timenow++;
printf(&quot;2&quot;);
}
为什么它可以输出就但是timeCH2一直是0,并且2没有输出,它是不是没进滴答定时器的中断,为什么进不去呢 |