从韦根接收数据,然后输出到数码管。输出数据放到DisplayBuffer[]里就行,我用的两个中断来接收数据,大神帮我看看哪里写的不对。实际操作的时候没反应的谢谢
#include "wg.h"
uint16 temp=0;
uint16 temp1;
void IO_cfg()
{
GPIO_InitTypeDef GPIO_InitStruct ;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_10;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
}
void EXIT_cfg()
{
EXTI_InitTypeDef EXTI_InitStruct;
EXTI_ClearITPendingBit(EXTI_Line9);
EXTI_ClearITPendingBit(EXTI_Line10);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource9);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource10);
EXTI_InitStruct.EXTI_Line=EXTI_Line9|EXTI_Line10;
EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;
EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Falling;
EXTI_InitStruct.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStruct);
}
void EXTI9_5_IRQHandler(void)
{
GPIO_SetBits(GPIOA,GPIO_Pin_9);
temp++;
extidata<<=1;
}
void EXTI15_10_IRQHandler(void)
{
GPIO_SetBits(GPIOA,GPIO_Pin_9);
temp++;
extidata<<=1;
extidata|=1;
}
void EXTI_Read(void)
{
if(temp>=24)
{
temp=0;
temp1=(uint16)(extidata<<8);
DisplayBuffer[0]=((uint8)extidata)>>4;
DisplayBuffer[1]=((uint8)extidata)&0x0f;
DisplayBuffer[2]=(uint8)((extidata&0x00f0)<<4);
DisplayBuffer[3]=(uint8)((extidata&0x000f)<<8);
}
else{DisplayBuffer[0]=7;
DisplayBuffer[1]=8;
DisplayBuffer[2]=9;
DisplayBuffer[3]=5; }
}
|