在ST社区申请到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 0X03 0X04字符,F3-NUCLEO板子收到字符后,将特定字符打印到串口中。其中,从机通过SPI中断方式接受主机数据。 在主机端,为了测试方便,需要实现LED/KEY/UART/SPI等模块的底层驱动配置,这个都在附件工程中!在从机端,为了实现命令打印和测试,也需要实现LED/KEY/UART/SPI模块的配置,对于F3-NUCLEO,测试了一个按键和串口,效果如下:
代码如下:
确定串口和SPI驱动无误后,将两个板子进行连接进行了测试。测试效果:
代码部分:
在测试F3-NUCLEO板子过程中,因为电脑问题,板子自带的ST-LINK-V2-1无法使用,一直装不上驱动,虚拟串口和U盘也不能显示,只好采用外部ST-LINK进行程序下载了。另外,电脑没有上网络的权限,无法体验出在线编译的效果,不过使用MDK还是很好的, 下面是测试图片:
附件是两个工程文件
F3-NUCLEO-SPI-从.rar
(385.43 KB)
F1-SPI-主.rar
(291.14 KB)
后记:在参加ST研讨会时,意外收获了21IC的惊喜!在此表示感谢!在参会之余,收获两个NUCLEO板子,有空再发点学习过程上来!:)
|