在ST社区申请到F302-NUCLEO开发板一块,抽了个时间开始认真感受一下,发现NUCLEO板子带的资源太少,整个板子就是一个核心板,除了两个LED和一个按钮,没有其他外设,好在它是M4内核的,带FPU单元,在实现复杂算法处理方面非常实用!此次申请该板子,也是抱着这种目的,毕竟前期ST推出的F3主流型号是F303VC T6,有100PIN,价格还是太高。在一个复杂的控制系统中,采用STM32F103 VCT6或者ZET6再搭配一颗STM32F302或者32引脚的F3,是一个不错的选择!可以专心让F1做控制,F1引脚有100-144基本满足外设要求;F3专门做算法处理, 32引脚就可以满足外部数据采集及算法处理,而且两者频率同为72MHZ. 在考虑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方式编程!下面是测试图片:
附件是两个工程文件
F1-SPI-主.rar
(291.14 KB, 下载次数: 92)
|