这次参加DigiKey公司与电子产品世界联合举办的 DIY-液体流量检测仪 活动,感觉收获不少。首先是搭建STM32的开发环境----Keil5以及STM公司的STM32CubeMX。由于我是刚开始学习STM32编程,对于这二个编程软件不是太熟悉,在看了老师的视频教程和网上一些参考资料,经过反复摸索试验,总算是能用了,还不能说熟悉,仅仅算是刚刚能够上手。
Keil5安装比较顺利,使用起来也比较方便,打开一个点亮LED的程序,编译OK,见下图:
接下来是STM32CubeMX。在这个软件中需要设置的项目比较多,有一部分是图形界面,参考网上的一些教程,用于STM32F1的例程很多,使用起来还算是比较方便。尤其是STM公司自己的开发板NUCLEO,可以直接选择开发板型号,这样基本的配置可以自动完成。见下图:
把需要用到的GPIO设置好,点击 GENERATE CODE,可以自动生成代码,再打开Keil,看到一些基本设置都做好了:
做这些安装及设置的过程,也是在学习编程基础的过程,也就是这次活动所获得的收获之一。
下面就要按照教程的要求,先测试这块开发板:
根据原理图所示,按键开关是连接PC13,LED(绿色)连接PA5,需要把PC13设置为INTPUT,把PA5设置为OUTPUT。
编译通过,再下载到开发板,利用定时器实现PA5的LED亮灭间隔为1秒(视频录像另见: https://www.bilibili.com/video/BV1MvFAe2EKY/?vd_source=04937d69dcb2856ff3d0e34bf8c0cf44 )。
下一步是OLED屏显示文字信息:
OLED屏是IIC接口,与开发板的PB8(SCL)、PB9(SDA)引脚相连,需要用到IIC通讯的有关知识,我反复看了几遍教程,还是没太搞懂,在这里把它记录下来,以便后期找时间再仔细研究一下。
借鉴了网上网友的程序:
可以看到OLED屏的显示(见视频录像: https://www.bilibili.com/video/BV1MvFAe2EKY/vd_source=04937d69dcb2856ff3d0e34bf8c0cf44 )。
下一步是用继电器控制水泵通断:
把继电器控制端连接到PC8(输出模式),按键开关已经在开发板连接到PC13。
实验的效果:当按一下按钮开关,继电器吸合,水泵吸水;再按一下按钮开关,继电器断电,停止吸水。演示效果见视频录像。
我把水流传感器串接到水泵的出水口,用示波器观察传感器输出端,当水泵吸水时可以看到一连串的脉冲信号。但是如何采集脉冲信号,再怎样转换成水流量显示在OLED屏,这一步我还没有做好,准备下一步深入学一些知识再来操作。至此基础任务基本完成。
程序如下:LED_JDQ.zip OLED_96.zip STM32_LED.zip
B站视频链接:https://www.bilibili.com/video/BV1MvFAe2EKY/?vd_source=04937d69dcb2856ff3d0e34bf8c0cf44