打印
[STM32F1]

韦根数据接收到数码管显示

[复制链接]
1349|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
从韦根接收数据,然后输出到数码管。输出数据放到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;                }
}
沙发
734774645| | 2016-4-30 15:03 | 只看该作者
中断没有配置对吧,没有接收到任何数据。

使用特权

评论回复
板凳
不舒服的舒服|  楼主 | 2016-4-30 15:05 | 只看该作者
734774645 发表于 2016-4-30 15:03
中断没有配置对吧,没有接收到任何数据。

那该怎么配置呢

使用特权

评论回复
地板
huangcunxiake| | 2016-4-30 22:38 | 只看该作者
这种数据没有使用过,也第一次听说,有高手用过吗

使用特权

评论回复
5
mintspring| | 2016-4-30 23:19 | 只看该作者
Wiegand(韦根)协议是由摩托罗拉公司制定的一种通讯协议,它适用于涉及门禁控制系统的读卡器和卡 片的许多特性。门禁卡协议啊?

使用特权

评论回复
6
不舒服的舒服|  楼主 | 2016-5-3 08:43 | 只看该作者
mintspring 发表于 2016-4-30 23:19
Wiegand(韦根)协议是由摩托罗拉公司制定的一种通讯协议,它适用于涉及门禁控制系统的读卡器和卡 片的许多特 ...

嗯,就是门禁用的,接收门襟数据到数码管显示

使用特权

评论回复
7
不舒服的舒服|  楼主 | 2016-5-3 08:44 | 只看该作者
快来人啊

使用特权

评论回复
8
yklstudent| | 2016-5-3 09:51 | 只看该作者
没接触过,帮顶

使用特权

评论回复
9
不舒服的舒服|  楼主 | 2016-5-3 11:31 | 只看该作者

使用特权

评论回复
10
不舒服的舒服|  楼主 | 2016-5-3 15:48 | 只看该作者

使用特权

评论回复
11
王七七| | 2016-5-3 16:21 | 只看该作者
建议一步一步来分析,首先看看你有木有产生中断。

使用特权

评论回复
12
不舒服的舒服|  楼主 | 2016-5-3 16:34 | 只看该作者
王七七 发表于 2016-5-3 16:21
建议一步一步来分析,首先看看你有木有产生中断。

木有产生,新手还不会一步步分析。请大神一针见血

使用特权

评论回复
13
王七七| | 2016-5-3 16:56 | 只看该作者
不舒服的舒服 发表于 2016-5-3 16:34
木有产生,新手还不会一步步分析。请大神一针见血

你如何检测你中断有没有产生?是中断标志位?
如果没有产生中断,那么可能是中断条件未满足,就是没有接受到数据,那你就可以分析,为什么没有接收到数据。

使用特权

评论回复
14
不舒服的舒服|  楼主 | 2016-5-3 16:57 | 只看该作者
王七七 发表于 2016-5-3 16:56
你如何检测你中断有没有产生?是中断标志位?
如果没有产生中断,那么可能是中断条件未满足,就是没有接 ...

为什么呢

使用特权

评论回复
15
王七七| | 2016-5-3 16:59 | 只看该作者

为什么呢
为什么呢
为什么呢
自己分析啊

使用特权

评论回复
16
不舒服的舒服|  楼主 | 2016-5-3 16:59 | 只看该作者
王七七 发表于 2016-5-3 16:56
你如何检测你中断有没有产生?是中断标志位?
如果没有产生中断,那么可能是中断条件未满足,就是没有接 ...

好吧,我没在main里初始化中断。现在可以确定中断调用了,只是和预期的不和

使用特权

评论回复
17
王七七| | 2016-5-3 17:00 | 只看该作者
不舒服的舒服 发表于 2016-5-3 16:59
好吧,我没在main里初始化中断。现在可以确定中断调用了,只是和预期的不和 ...

哎哟。。。。。仔细点好伐  小伙子

使用特权

评论回复
18
不舒服的舒服|  楼主 | 2016-5-3 17:01 | 只看该作者
王七七 发表于 2016-5-3 17:00
哎哟。。。。。仔细点好伐  小伙子

我一开始初始化了的,可能没保存吧。可是中断还是不对啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

52

帖子

0

粉丝