+ BLE+WIFI通讯
时间:10-02
整理:3721RD
点击:
自从上次搭建好硬件后一直在写STM32F4的固件代码,目前实现了蓝牙和WIFI的通讯功能,蓝牙和手机连接,WIFI将连接一台远程的计算机,整个实现过程如下。首先需要建立固件框架,实现外设驱动。我使用了ST公司提供的图形化代码生成工具STM32CubeMX,打开STM32CubeMX后的界面如图1所示。
点击New Project可以建立新的工程,然后按照图2所示的步骤依次选择红框中的项目就可以建立NUCLEO-F412ZG开发板的资源界面,如图3所示。
图1 STM32CubeMX
点击New Project可以建立新的工程,然后按照图2所示的步骤依次选择红框中的项目就可以建立NUCLEO-F412ZG开发板的资源界面,如图3所示。
图2 选择NUCLEO-F412ZG开发板
图3 NUCLEO-F412ZG开发板所有资源
按照功能要求,我需要一个外部按键,两路UART,三个LED指示灯。其中两路UART分别用来与蓝牙模块和WIFI模块通讯。以上的外设需求都可以在Pinout选项卡中选择,结果如图4所示,绿色的即代表会使用到。
图4 引脚设置
在Clock Configuration选项卡中可以设置所有时钟,一般都是自动设置的。在Configuration选项卡中可以设置所有资源的具体参数,比如UART的波特率、中断等等。当所有资源的设置完成后,点击Generate Code就可以生成代码,我选择的是keil v5,由于我想使用操作系统,所有选择了freertos,最后的界面如图5所示。
图5 所有使用的资源
有了软件自动生成的驱动后,我只用实现应用程序即可。时间比较紧张,现在实现了当手机蓝牙连接NUCLEO-F412ZG开发板后,NUCLEO-F412ZG开发板会每1秒自动向手机上传Start...指令,直到手机回复数据为止,如图6,7所示;还有通过WIFI连接远程计算机,当远程计算机的服务器和NUCLEO-F412ZG开发板连接后,NUCLEO-F412ZG开发板会自动向服务器端发送数据,如图8所示。
图6 STM32F4蓝牙广播
图7 通过蓝牙自动上传数据
图8 通过WIFI自动上传数据