打印
[STM32F1]

SPI引脚能否间歇当作外部中断引脚?

[复制链接]
1573|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
any012|  楼主 | 2016-4-18 13:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教个问题:stm32的spi和另一个元件通讯,stm32当主设备发送命令结束后,等从设备采样处理,处理结束后把MISO线拉低,通知stm32处理结束可以读取数据了。

原来是stm32发送完命令后就一直等着,等到MISO引脚被拉低后才发送读取数据命令。
现在觉得等待太浪费时间了,想在这段时间内做些其他数据处理。
那么,能把MISO引脚定义为外部中断吗?

沙发
any012|  楼主 | 2016-4-18 15:14 | 只看该作者
void PB4_ExintEnable(u8 en)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        EXTI_InitTypeDef EXTI_InitStructure;
        if(en)
        {
                GPIO_EXTLineConfig(GPIO PortSourceGPIOA, GPIO_PinSource0);
                EXTI_InitStructure.EXTI_Line = EXTI_Line;
                EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
                EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;                //ϽµÑØÖжÏ
                EXTI_InitStructure.EXTI_LineCmd = ENABLE;
        }
        else
        {
                EXTI_InitStructure.EXTI_LineCmd = DISABLE;
        }
        EXTI_Init(&EXTI_InitStructure);
}


这样写,不知道行不行。

使用特权

评论回复
板凳
popeye021| | 2016-4-18 16:43 | 只看该作者
已经用了硬件spi的话,同时做外部中断输入可能不行,估计要来回切换。
可以在stm32发送完指令以后,定时扫描读取MISO的电平,读到低,再去读取spi的数据

使用特权

评论回复
地板
ccw1986| | 2016-4-18 16:56 | 只看该作者
最好不要这样吧,用做miso的时候还得重新初始化,得浪费多少时间啊

使用特权

评论回复
5
zchong| | 2016-4-18 17:13 | 只看该作者
你这外设就没有独立的中断脚?
这样处理很麻烦,但是可行的,需要不断的对这个引脚进行重新配置

使用特权

评论回复
6
any012|  楼主 | 2016-4-18 17:15 | 只看该作者
popeye021 发表于 2016-4-18 16:43
已经用了硬件spi的话,同时做外部中断输入可能不行,估计要来回切换。
可以在stm32发送完指令以后,定时扫 ...

我现在用的软件SPI,感觉就挺浪费时间的...

使用特权

评论回复
7
popeye021| | 2016-4-18 17:51 | 只看该作者
any012 发表于 2016-4-18 17:15
我现在用的软件SPI,感觉就挺浪费时间的...

浪不浪费不重要,关键是能不能满足系统的需要。

使用特权

评论回复
8
大秦正声| | 2016-4-18 19:43 | 只看该作者
另外用一个i/o

使用特权

评论回复
9
Soraka| | 2016-4-18 22:16 | 只看该作者
已经用了硬件spi的话,同时做外部中断输入可能不行,估计要来回切换

同意楼上说法,来回切换会出问题的

使用特权

评论回复
10
Varus| | 2016-4-18 23:51 | 只看该作者
理论上可以,但是需要来回切换,怎么保证切换时不影响SPI通信呢,资源狗的话还是用另外的IO吧

使用特权

评论回复
11
any012|  楼主 | 2016-4-19 08:43 | 只看该作者
这个ADC特性决定的,数据采集时将MISO拉高,数据采集结束后将MISO拉低。通过MISO被拉低通知单片机可以读取数据。
没办法用另外的IO。

使用特权

评论回复
12
ngyg12| | 2016-4-19 09:39 | 只看该作者
MISO & 1 -> 另一个IO    SPI 发送/读取数据 禁止IO的中断   等待ADC 转换的时候 使能IO中断     & 为与门

使用特权

评论回复
13
any012|  楼主 | 2016-4-19 09:53 | 只看该作者
ngyg12 发表于 2016-4-19 09:39
MISO & 1 -> 另一个IO    SPI 发送/读取数据 禁止IO的中断   等待ADC 转换的时候 使能IO中断     & 为与门 ...

意思是将MISO也连到另一个IO上?
不明白MISO&1 -> 另一个IO,忘指教,谢谢。

使用特权

评论回复
14
ngyg12| | 2016-4-19 10:43 | 只看该作者
与门 一个输入 脚接MISO 另一个接高电平  输出接中断 IO

使用特权

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

本版积分规则

35

主题

232

帖子

6

粉丝