前两天发了一个关于stm32spi通信的帖子。是说两片stm32做主从SPI通信,然后从机返回的数据不正确。后来我做实验验证了,真是从机返回的数据不正确。我在主机程序最后加了if(SPI1->DR==某个数据)然后进行主机的自发自收。是可以的。但。。。比如我从机给的senddata是0x32,在主机里senddata() delay(1000)if(SPI1->DR==0X32)......
{
LED灯闪三下
}
然后小灯并没有闪烁。有网友说会不会是时序的问题,我主从机的程序都是设置成一样的,一眼就能看出来了,难道说主从机设置成一样也会有错?我真搞不明白为什么从机返回的数据会错。究竟错在哪里
我从机的程序很简单的,因为我只要发送一个字节,从机的程序就只有一句senddata(0x32);
还有我想请问一下大家,为什么从机也要设置baudrate分频,从机应该没有baudrate的概念啊,反正从机是基于主机时钟工作的。是把?麻烦会的朋友解答一下谢谢大家了
|