改变IO口的状态
if((x>3400 && x<3650) && (y>3700&&y<4000))
{
GPIO_SetBits(GPIOA,GPIO_Pin_3);
// printf("%d
",0);
}
if((x>3650 && x<4000) && (y>3400&&y<3600))
{
GPIO_SetBits(GPIOA,GPIO_Pin_4);
// printf("%d
",1);
}
滴答定时器
#include <includes.h>
#include "systick.h"
#include "stm32f10x.h"
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("%d
",1); } if(!GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)) { printf("%d
",9); timeCh2 = timenow; printf("%d
",timeCh2) ; }
EXTI_ClearITPendingBit(EXTI_Line3);
}
void SysTick_Handler(void)
{
timenow++;
printf("2");
}
为什么它可以输出就但是timeCH2一直是0,并且2没有输出,它是不是没进滴答定时器的中断,为什么进不去呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>