OpenEdv-开源电子网

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

STM32F103做spi从机输出需要延迟16个时钟后才输出

[复制链接]

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-11-15
在线时间
19 小时
发表于 2017-12-25 17:27:32 | 显示全部楼层 |阅读模式
1金钱
目前项目需要用到stm32f103c8t6做spi从机主控为A9主控现stm32f103中断函数为接受到数据后把数据扔回给A9主控,现在发现stm32f103需要在16个时钟后才会输出数据这个是什么原因
void SPI1_IRQHandler(void)
{

    u8 datarcv = 0;



        if(SPI_I2S_GetITStatus(SPI1, SPI_I2S_IT_RXNE) != RESET)
        {


            SPI_I2S_ClearFlag(SPI1, SPI_I2S_FLAG_RXNE);

            datarcv = SPI_I2S_ReceiveData(SPI1);

SPI_I2S_SendData(SPI1, datarcv); //通过外设SPIx发送一个数据
        }



}



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

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3720
金钱
3720
注册时间
2011-5-23
在线时间
2012 小时
发表于 2017-12-25 17:34:39 | 显示全部楼层
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3720
金钱
3720
注册时间
2011-5-23
在线时间
2012 小时
发表于 2017-12-25 17:37:54 | 显示全部楼层
spi在物理上是全双工,你这里是RXNE的中断,那么至少传输了一个字节,才收到中断。
经过一定的延迟,CPU才在下一个字节时写入数据。
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

2

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2014-3-25
在线时间
16 小时
发表于 2019-8-1 11:10:25 | 显示全部楼层
aozima 发表于 2017-12-25 17:37
spi在物理上是全双工,你这里是RXNE的中断,那么至少传输了一个字节,才收到中断。
经过一定的延迟,CPU才 ...

有没有参考的SPI从机代码可以参考的?目前也遇到用SPI中断,从机发出来的数据往后偏了8个bit。应该最后一个字节发送的数据,第一个字节就发出来了,用示波器抓过,确实是这样。。
回复

使用道具 举报

4

主题

98

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3852
金钱
3852
注册时间
2018-5-25
在线时间
892 小时
发表于 2020-4-14 14:33:29 | 显示全部楼层
解决了么?我用STM32F030也遇到这个问题?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 05:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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