STM32f4和F1的双机SPI通信 目前成功一半了 出现一些问题,还请大神速点

2019-07-20 06:34发布

目前在做STM32双机通信,只不过我的是F4和F1通信,现在只是双方发送和接收单字节没有问题,但是在发送数组时出现了如图所示的问题,代码见附件。只放了主程序。
主机(F4):
#include "stm32f4xx.h"
#include "usart.h"
#include "delay.h"
#include "spi.h"
u8 we[]={0x80,0x10,0x54,0x55,0x44,0x41,0x14,0x47};
u8 i;
int main(void)
{
        uart_init(115200);
        delay_init(168);
        SPI1_Init();
  SPI1_SetSpeed(SPI_BaudRatePrescaler_64);
        u16 val;
  while(1)
        {

       
                SPI_CS=0;

                for(i=0;i<8;i++)
          {
                val=SPI1_ReadWriteByte(we);
                printf("%x ",val);
                //delay_ms(100);
                        }
                SPI_CS=1;
               
//                SPI_CS=0;
//               
//          }
//                SPI_CS=1;
        }
}
从机F1:

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "spi.h"
u16 Slave_Temp;
u8 i;
u8 we[]={0x80,0x10,0x54,0x55,0x44,0x41,0x14,0x47};
int main(void)
{               

        delay_init();                               
        uart_init(115200);         
         NVIC_Configuration();
         SPI2_Init();       
        // SPI2_SetSpeed(SPI_BaudRatePrescaler_256);
        while(1)
                {

               
                if(SPI_CS!=1)
                {
                for(i=0;i<8;i++)
                {  
                delay_ms(1);       
    Slave_Temp=SPI1_ReadWriteByte(we);
    //SPI2_WriteByte(0x25);               
          printf("%x ",Slave_Temp);
               
                }
                }
       
       
}

}

出现了以下现象:
从机数据 从机数据 这是从机                            主机数据 主机数据 这是主机


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
空空禅师
1楼-- · 2019-07-20 08:18
 精彩回答 2  元偷偷看……
空空禅师
2楼-- · 2019-07-20 13:28
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-07-20 17:01
别在接收循环里面printf
空空禅师
4楼-- · 2019-07-20 22:03
原子哥 还是不行呀 问题依旧呀 F4的SPI1时钟 和F1的SPI2时钟不一样 会不会影响呀  
正点原子
5楼-- · 2019-07-21 01:59
 精彩回答 2  元偷偷看……
李德胜
6楼-- · 2019-07-21 05:26
 精彩回答 2  元偷偷看……

一周热门 更多>