智能车制作

 找回密码
 注册

扫一扫,访问微社区

STM32论坛
查看: 2043|回复: 1
打印 上一主题 下一主题

nrf51822与stm32f103进行SPI通讯问题请教

[复制链接]

1

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
21
威望
13
贡献
6
兑换币
7
注册时间
2017-11-9
在线时间
1 小时
跳转到指定楼层
1#
发表于 2017-11-9 14:46:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在做NRF51822和STM32之间的数据通讯。使用SPI协议,将nrf51822设置为主机,STM32作为从机。
1、nrf51822发送一个数值型值给STM32,stm32通过从机中断将数据读出来发送给W5500模块。单个数值型数据验证OK。代码如下:
void SPI2_IRQHandler(void)
{

    if (SPI_I2S_GetITStatus(SPI2, SPI_I2S_IT_RXNE) != RESET)  
        {  
                nrf_message = SPI_I2S_ReceiveData(SPI2);  
        }  
        if(S0_State == (S_INIT|S_CONN))
        {
                S0_Data&=~S_TRANSMITOK;
                memcpy(Tx_Buffer,&nrf_message,1);       
                Write_SOCK_Data_Buffer(0, Tx_Buffer, 1);
        }
}


2、问题是我想通过蓝牙主机发送字符串,我将nrf51822的MOSI,MISO接在一起,发现字符串传输是OK的。但是使用杜邦线将NRF51822和stm32 SPI接口连接后,发现使用如下代码接收到的数据并不对。
void SPI2_IRQHandler(void)
{

    if (SPI_I2S_GetITStatus(SPI2, SPI_I2S_IT_RXNE) != RESET)  
        {  
                nrf_message[iii++] = SPI_I2S_ReceiveData(SPI2);  
        }  
        if(iii >= 20)
        {
                iii = 0;
                gSPI_FlagOver = FLAG_VALID;
        }
}

意思就是蓝牙发送来的数据长度为20个字节,接收满20个字节后置标志位在发送给W5500模块。这个一直存在问题,请论坛的大大们帮忙看下,STM32的SPI从模式到底该怎么搞???
回复

使用道具 举报

1

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
21
威望
13
贡献
6
兑换币
7
注册时间
2017-11-9
在线时间
1 小时
2#
 楼主| 发表于 2017-11-9 14:50:43 | 只看该作者
大大们,给点建议呐,stm32 SPI从机都搜不到什么例程
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 13:21 , Processed in 0.047512 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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