OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5219|回复: 6

基于stm32无线抢答器制作求助

[复制链接]

25

主题

135

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
404
金钱
404
注册时间
2016-8-23
在线时间
50 小时
发表于 2016-12-23 14:36:54 | 显示全部楼层 |阅读模式
10金钱
最近我想做一个无线抢答器,用stm32控制,发送接收设备采用的是淘宝上买的315Mhz带编码解码的套件。每套对应的编码方式都不一样,可以自己设定,只要发射器和接收器编码方式相同一样就可以接受信号,这就避免了各个抢答器之间的互相干扰。将接收器的输出端接在单片机上,通过IO输入判断是否有高电平输入,有就直接LCD输出,同时关闭IO输入模式。
现在碰到的问题如下:

1.我想请问一下若多个按键同时按下怎么判断到底哪个抢答成功?
2.这种按键需要按下延时大概0.2秒后接收器才有输出,若按下放松太快,则接收器无法接受,请问这种问题怎么解决?


最后,如果有谁做过多路无线抢答器请指教,谢谢!

按下第一个,LCD显示编号,对应LED亮

按下第一个,LCD显示编号,对应LED亮

同第一个

同第一个
两个同时按下.png

最佳答案

查看完整内容[请看2#楼]

无线抢答器用2272/2262模块是不能同时检测到信号的,只有一个信道,改方案用zigbee或者nrfl2401
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

25

主题

135

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
404
金钱
404
注册时间
2016-8-23
在线时间
50 小时
 楼主| 发表于 2016-12-23 14:36:55 | 显示全部楼层
无线抢答器用2272/2262模块是不能同时检测到信号的,只有一个信道,改方案用zigbee或者nrfl2401
回复

使用道具 举报

25

主题

135

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
404
金钱
404
注册时间
2016-8-23
在线时间
50 小时
 楼主| 发表于 2016-12-23 14:37:36 | 显示全部楼层
目前只是在开发板上调试,调试成功后会自己做板子
回复

使用道具 举报

25

主题

135

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
404
金钱
404
注册时间
2016-8-23
在线时间
50 小时
 楼主| 发表于 2016-12-23 14:40:20 | 显示全部楼层
按键按下需要0.2秒左右的延时不知道应该怎么解决,求大神指导。后面接受到两个同时的信号为什么没有输出,一直想不明白,我贴出部分代码:
            if(        KEY1==1)//编号为1抢答
                {
                        LED1=!LED1;
                        num=1;
                        Key_down();
                }
                if(KEY2==1)//编号为2抢答
                {
                        LED0=!LED0;
                        num=2;
                        Key_down();
                }
                LCD_ShowxNum(156,130,num,4,16,0);//lcd显示抢答人编号
回复

使用道具 举报

25

主题

135

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
404
金钱
404
注册时间
2016-8-23
在线时间
50 小时
 楼主| 发表于 2016-12-23 14:41:27 | 显示全部楼层
void Key_down(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);

        GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOE, &GPIO_InitStructure);

}//这是我想的很笨的办法关io,有更好的方法请不吝赐教
回复

使用道具 举报

21

主题

387

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1043
金钱
1043
注册时间
2016-9-8
在线时间
213 小时
发表于 2016-12-23 16:30:24 | 显示全部楼层
确定不会干扰?我记得一般都是软件编码,解码。。。。。。。IO中断处理呗。至于按那块,没啥办法,物理按键本质决定的吧。。
shop60994719.taobao.com
回复

使用道具 举报

25

主题

135

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
404
金钱
404
注册时间
2016-8-23
在线时间
50 小时
 楼主| 发表于 2016-12-23 17:01:01 | 显示全部楼层
密耳 发表于 2016-12-23 16:30
确定不会干扰?我记得一般都是软件编码,解码。。。。。。。IO中断处理呗。至于按那块,没啥办法,物理按键 ...

买的那个模块是硬件编码,实在不行我就在接受端这边做个锁存电路了。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-7 19:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表