在考虑STM32F1和F302-NUCLEO通信时,先暂时考虑SPI总线方式,因为UART和I2C速度都太慢,采用并行总线的方式应用起来还不太稳定,后期再做测试。在这里就分享一个实验成功了的SPI总线双机通信!
在测试中,让F1作为主机,F302-NUCLEO作为从机,SPI总线中,CS引脚都采用内部软件控制,主机CS引脚内部上拉到VCC,从机CS引脚下拉到GND,这样,可以省略一个IO线!连接方式如下:
测试命令如下:通过F1的四个按键,分别发送0X01 0X02 0X030X04字符,F3-NUCLEO板子收到字符后,将特定字符打印到串口中。其中,从机通过SPI中断方式接受主机数据。
在主机端,为了测试方便,需要实现LED/KEY/UART/SPI等模块的底层驱动配置,这个都在附件工程中!在从机端,为了实现命令打印和测试,也需要实现LED/KEY/UART/SPI模块的配置,对于F3-NUCLEO,测试了一个按键和串口,效果如下:
代码如下,见相关文件:
确定串口和SPI驱动无误后,将两个板子进行连接进行了测试。测试效果:
代码部分:
在测试F3-NUCLEO板子过程中,因为电脑问题,板子自带的ST-LINK-V2-1无法使用,一直装不上驱动,虚拟串口和U盘也不能显示,只好采用外部ST-LINK进行程序下载了。另外,电脑没有网络权限,无法使用在线编译功能,还是用MDK方式编程!
下面是测试图片: