野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16502|回复: 9

关于触摸屏TSC2046中断连接端口的问题

[复制链接]
发表于 2014-9-28 22:45:19 | 显示全部楼层 |阅读模式
static void TP_INT_GPIO_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        EXTI_InitTypeDef EXTI_InitStructure;

        /* config the extiline clock and AFIO clock */
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF | RCC_APB2Periph_AFIO,ENABLE);
                                                                                               
        /* config the NVIC */
        TP_INT_NVIC_Config();

        /* EXTI line gpio config */       
  GPIO_InitStructure.GPIO_Pin = TP_INT_PIN;                        /*PA4*/      
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;         // éÏà-êäèë
  GPIO_Init(TP_INT_PORT, &GPIO_InitStructure);

        /* EXTI line mode config */
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOF, GPIO_PinSource9);  // PF9
  EXTI_InitStructure.EXTI_Line = EXTI_Line9;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
}
另有宏定义如下:
#define  TP_INT_PIN            GPIO_Pin_4
#define  TP_INT_PORT          GPIOA

触摸屏中断 TSC2046- INT_IRQ是接在PA4,还是PF9端口?
这是野火光盘自带的画图板程序中的一段,没有改动,程序可以运行。




回复

使用道具 举报

 楼主| 发表于 2014-9-28 22:46:37 | 显示全部楼层
自己顶一个,求大神解答!
回复 支持 反对

使用道具 举报

发表于 2014-9-29 01:15:24 | 显示全部楼层
虽然例程中同样的配置野火写了两遍,但你仔细看看程序用条件编译指令标注了的。
[code=c]#if 0
#elif 1
#endif[/code]
这3句宏的用法分别为
#if指令检测跟在关键字后的常量表达式。如果表达式为真,则编译后面的代码,知道出现#else、#elif或#endif为止;否则就不编译。

#else指令用于某个#if指令之后,当前面的#if指令的条件不为真时,就编译#else后面的代码。#elif预处理指令综合了#else和#if指令的作用。

#endif用于终止#if预处理指令。

这里有一个帖子专门关于宏定义与条件编译的,建议你去看看,这已经是很基础的C语言知识了:http://www.firebbs.cn/forum.php? ... tid=6003&ctid=3
回复 支持 反对

使用道具 举报

发表于 2014-9-29 01:19:40 | 显示全部楼层
忘了说结论了,中断配置在PE4
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-29 13:39:44 | 显示全部楼层
今早上把源码重新看了一遍,发现项目提高篇里的例程7即“液晶触摸”这个工程中竟然存在错误,错误具体如下:
触摸屏控制芯片TSC2046与MCU的IO连接配置错误:例程工程中的TSC2046-SPI -SCK、TSC2046-SPI - MOSI、TSC2046-SPI - MISO、TSC2046-SPI-CS、TSC2046- INT_IRQ这5个引脚分别与MCU模拟SPI的IO端口PA3、PA5、PA6、PA7、PA4相连,但实际的连接为PG7、PF6、PF11、PF10、PF9这5个IO口,其中触摸屏中断与PF9连接
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-29 13:44:44 | 显示全部楼层
獨自、成雙 发表于 2014-9-29 01:15
虽然例程中同样的配置野火写了两遍,但你仔细看看程序用条件编译指令标注了的。

这3句宏的用法分别为

谢谢回复!愿共同进步!
回复 支持 反对

使用道具 举报

发表于 2014-9-29 14:34:26 | 显示全部楼层
Animaling 发表于 2014-9-29 13:39
今早上把源码重新看了一遍,发现项目提高篇里的例程7即“液晶触摸”这个工程中竟然存在错误,错误具体如下: ...

野火写的是两种配置吧,一种配置在if0里,没有编译的,正常的应该是使用else语句里的。
回复 支持 反对

使用道具 举报

发表于 2014-10-5 23:05:24 | 显示全部楼层
晋海女 发表于 2014-9-29 14:34
野火写的是两种配置吧,一种配置在if0里,没有编译的,正常的应该是使用else语句里的。

我就是这个意思啊,我估计还是楼主没看懂我说的什么...而且我用的MINI的板子,引脚连接和他不太一样
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-7 21:37:50 | 显示全部楼层
獨自、成雙 发表于 2014-10-5 23:05
我就是这个意思啊,我估计还是楼主没看懂我说的什么...而且我用的MINI的板子,引脚连接和他不太一样

我用的是ISO板子,配置函数里面没有#if 1这样的预编译语句,说实话,在调试好的工程里出现这样的调试语句,我觉得作者是很不认真的。
回复 支持 反对

使用道具 举报

发表于 2014-10-8 18:43:10 | 显示全部楼层
Animaling 发表于 2014-10-7 21:37
我用的是ISO板子,配置函数里面没有#if 1这样的预编译语句,说实话,在调试好的工程里出现这样的调试语句 ...

呃,我到觉得,作者用条件编译语句是想给你提供另一种可能的选择吧~不过如果程序给错了就是这个作者的问题了吧
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 13:42 , Processed in 0.036133 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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