OpenEdv-开源电子网

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

SD卡和触摸共用SPI1程序共享

[复制链接]

27

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
472
金钱
472
注册时间
2011-11-2
在线时间
11 小时
发表于 2011-11-11 15:31:30 | 显示全部楼层 |阅读模式
昨天提到卖家的TFT的触摸和SD是共用SPI数据口的,研究了一天终于把硬件SPI驱动驱动弄好了,感谢下电子白菜,对于原子说的中断会干扰到数据传送我做了个保护。现在触摸MP3正常使用
这里就给出TOUCH的程序吧 
u16 ADS_Read_AD(u8 CMD)  
{ u16 i,ii;
u16 count=0;  
u16 Num=0; 
ii=SPI1->CR1;
// SPI1->CR1&=0XFFC7;//Fsck=Fcpu/256
// SPI1->CR1|=3<<3;//Fsck=Fpclk/2=36Mhz
// SPI1->CR1|=1<<6; //SPI设备使能
         SPI1->CR1=863;  //这一句和上面注释的实现一个功能的。才用16分频 再快就不行了
i=GPIOA->IDR; //记录A口的状态以便恢复
GPIOA->BSRR=1<<3;  //这里是SD卡的片选端
GPIOA->BSRR=1<<8;    //这里是MP3的片选端  根据使用到SPI硬件进行设置
TCS=0; //选中ADS7843
delay_us(3);    
SPIx_ReadWriteByte(CMD);  
delay_us(3);
count=SPIx_ReadWriteByte(0); 
count=count<<8; 
count|=SPIx_ReadWriteByte(0); 
count>>=3;  
Num=count;
GPIOA->ODR=i;
SPI1->CR1=ii;   
TCS=1;//释放ADS7843
 
return(Num);   
}

主要就是这个函数改一下 初始化再进行配置下
GPIOC->CRL&=0XFFFFFF00;//PC0~3
GPIOC->CRL|=0X0000FF83; 
GPIOC->ODR|=0X03;    //PC0~3 13 全部上拉  C0为触摸片选端。

感谢原子的程序,才能这样神速完成。





与触摸共享SPI1 触摸CS为PC0中断为PC1.zip

1.93 MB, 下载次数: 980

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-11-11 17:13:23 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2012-1-6
在线时间
1 小时
发表于 2012-1-6 16:20:01 | 显示全部楼层
跟楼主一样,买到的屏也是SD卡、触摸共用SPI接口,能否参考下楼主的完整程序!在此先谢了
回复 支持 反对

使用道具 举报

13

主题

104

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2011-8-2
在线时间
0 小时
发表于 2012-1-6 23:08:39 | 显示全部楼层
~~~
回复 支持 反对

使用道具 举报

27

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
472
金钱
472
注册时间
2011-11-2
在线时间
11 小时
 楼主| 发表于 2012-1-7 17:52:35 | 显示全部楼层
回复【3楼】ultrawise:
好久了,我去整理下共享。现在回头想想影响是会有,只是基本上干扰不到吧。
还有就是硬件SPI速度不能太快,太快触摸芯片估计吃不消。
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2012-2-24
在线时间
0 小时
发表于 2012-2-27 10:03:51 | 显示全部楼层
回复【5楼】zenghi:
---------------------------------
楼主  是不是在用SD卡的时候关AD的片选,在用AD得时候关SD的片选??具体是要在哪里关?在初始化的时候吗
回复 支持 反对

使用道具 举报

27

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
472
金钱
472
注册时间
2011-11-2
在线时间
11 小时
 楼主| 发表于 2012-2-28 20:14:02 | 显示全部楼层
回复【6楼】630511630511:
---------------------------------
是这样的。至于片选我记得当时SD是PA3  上面贴出来的程序应该有关闭SD片选 读完AD后再开起来过吧。GPIOA->BSRR=1<<3;这个就是关闭了。
GPIOA->ODR=i;这个就是恢复在读AD之前的PA端。
上面写的程序很杂不好意思。
回复 支持 反对

使用道具 举报

19

主题

248

帖子

2

精华

高级会员

Rank: 4

积分
842
金钱
842
注册时间
2012-2-8
在线时间
19 小时
发表于 2012-8-22 21:40:54 | 显示全部楼层
我是自己设计的时候把SD和触摸屏接到一起去了。真的被驴踢了
回复 支持 反对

使用道具 举报

6

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2013-4-4
在线时间
0 小时
发表于 2013-7-25 13:08:08 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-16 10:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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