OpenEdv-开源电子网

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

求助触控鼠标问题

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2013-9-3
在线时间
0 小时
发表于 2013-9-3 15:52:16 | 显示全部楼层 |阅读模式
原子哥 我想在你的触控鼠标历程上加入无线的2401但是每次一加检测芯片的程序总显示芯片没有插入
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-3 15:55:03 | 显示全部楼层
你下载NRF24L01例程检查下试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2013-9-3
在线时间
0 小时
 楼主| 发表于 2013-9-3 15:56:31 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
例程就能检测到 我只是在初始化里加了一个2401的初始化 和检测芯片的函数
我所有改动的函数都在这了
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h" 
#include "key.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"
#include "lcd.h"   
#include "rtc.h"
#include "wkup.h"
#include "adc.h"
#include "dma.h"
#include "24cxx.h"
#include "flash.h"
#include "touch.h"    
#include "usb_lib.h"
#include "hw_config.h"
#include "usb_pwr.h"
#include "24l01.h"   
//Mini STM32开发板范例代码26
//触控USB鼠标 实验
//正点原子@ALIENTEK
//技术论坛:www.openedv.com


//装载画图的界面
void Load_Drow_Dialog(void)
{
LCD_Clear(WHITE);//清屏   
  POINT_COLOR=BLUE;//设置字体为蓝色 
LCD_ShowString(216,0,"RST");//显示清屏区域
  POINT_COLOR=RED;//设置画笔蓝色 
}    
int main(void)
{
u8 key;
u8 i=0;
u8 tpx=0;  
s8 x0; //发送到电脑端的坐标值
s8 y0;
short xlast; //最后一次按下的坐标值
short ylast;  
  Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口1初始化    
LCD_Init(); //初始化液晶  
KEY_Init(); //按键初始化
LED_Init();         //LED初始化
NRF24L01_Init();    //初始化NRF24L01   
//USB配置
USB_Interrupts_Config();    
Set_USBClock();   
USB_Init();   
  POINT_COLOR=RED;//设置字体为蓝色   
LCD_ShowString(60,50,"Mini STM32");
LCD_ShowString(60,70,"USB TEST");
LCD_ShowString(60,90,"ATOM@ALIENTEK");
LCD_ShowString(60,110,"2011/1/2");
LCD_ShowString(60,130,"Press KEY0 to Adjust");
Touch_Init();
delay_ms(1500);
Load_Drow_Dialog();
while(NRF24L01_Check())//检测不到24L01
{
LCD_ShowString(60,130,"24L01 Check Failed!");
delay_ms(500);
LCD_ShowString(60,130,"Please Check!      ");
delay_ms(500);
LED0=!LED0;//DS0闪烁
}   
while(1)
{
key=KEY_Scan();
tpx=AI_Read_TP();//得到触点的状态
if(tpx)//触摸屏被按下  
{   
xlast=Pen_Point.X0;
ylast=Pen_Point.Y0;
while(1)
{
tpx=AI_Read_TP();
if(tpx==0)break;//触点松开了  
if(Pen_Point.X0>216&&en_Point.Y0<16)Load_Drow_Dialog();//清除
else Draw_Big_Point(Pen_Point.X0,Pen_Point.Y0);//画图  
if((Pen_Point.X0!=xlast||Pen_Point.Y0!=ylast)&&(bDeviceState==CONFIGURED)&&tpx==1)
{
x0=(xlast-Pen_Point.X0)*3;//上次坐标值与得到的坐标值之差,扩大3倍
y0=(ylast-Pen_Point.Y0)*3;
xlast=Pen_Point.X0;  //记录本次的坐标值
ylast=Pen_Point.Y0;
Joystick_Send(0,-x0,-y0,0); //发送数据到电脑  
delay_ms(10);   
}else if((bDeviceState==CONFIGURED)&&tpx==2)//单击
{
tpx=0X01;
Joystick_Send(tpx,0,0,0);//模拟左键按下
delay_us(50); 
Joystick_Send(0,0,0,0);//发送左键松开
}else delay_ms(1);  
if(bDeviceState==CONFIGURED)LED1=0;//当USB配置成功了,LED1亮,否则,灭
else LED1=1;
if(key==1)//KEY0按下,则执行校准程序
{
LCD_Clear(WHITE);//清屏
   Touch_Adjust();  //屏幕校准 
Save_Adjdata();  
Load_Drow_Dialog();
}
i++;
if(i==200)
{
i=0;
LED0=!LED0;
}
};    
}   

 

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-3 22:07:51 | 显示全部楼层
仿真找下问题吧,屏蔽按键初始化及扫描,然后仿真,查看下:NRF24L01_Check()函数,是哪里不成功。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-14 02:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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