安卓设备通过USB串口与STM32单片机通讯之一
APP通过USB串口与STM32F103C8T6单片机的通讯例子
(一) 引言和总体概念
为了不浪费读者时间,先送上此实验场景图(不感兴趣者忽略之): 各个组成部件的分解图如下: 本串口调试器支持如下几种USB串口芯片: PL2303,CP2102,CH340。 这三种芯片均经过本博主亲测可用。
本APP支持的安卓版本: 目前已在Android 4.2,Android 4.4, Android 8.1, Android 9.0 的安卓设备上测试OK(前两种版本分别是某品牌的安卓电视屏和机顶盒,后两种版本是两款华为手机)。
为方便本博文在以后的描述,我暂时把其中的核心模块称为JGB01开发板,它其实由USB串口桥接器和STM32F103最小开发板简单连接而成,外观如下:
在UI界面的第一行可看到此测试使用的USB串口芯片是CP210X系列(具体用的是CP2102),每当插入JGB01开发板时会自动更新芯片类显示。 UI界面的第二行是波特率选择,有几种波特率选择,本JGB01开发板的STM32芯片的波特率已内置为115200,所以这里也将此串口桥接芯片CP2102的波特率选为115200. UI界面的第三行是关闭和打开按钮,分别对应CP2102串口设备的打开和关闭。 UI界面的第四行这一排按钮是专门针对JGB01开发板的功能设定的,如果用户是和其它串口设备通讯时可能用不上。
-
用遥控器移动输入焦点后可操作如下功能: 按动【点亮】钮,JGB01开发板上的 蓝灯亮起。 按动【熄灭】钮,JGB01开发板上的蓝灯熄灭。 按动【温控】钮,则指示JGB01开发板每隔5秒重复发回温度控制传感器的检测值。 按动【停止】钮,则指示JGB01开发板停止发回温度传感器的检测值。 另外【停止】按钮还有一个复用功能【翻页】,当收到数据的行数很多而出现文本框上下滚动,用户又重复按动此钮时该【翻页】复用功能自动可用,其功能是翻动查看所有接收到的数据行。当此钮的焦点被移动后会自动恢复为【停止】。 此功能对于APP安装在机顶盒或电视设备上时尤其有用,因为此类设备的滑动屏幕是不可用的。
UI界面的第五行指定本APP发送出去的通用数据和对应的发送按钮,当外部设备(这里是JGB01开发板)被打开后即可使,你可以使用软键盘改变此值。
最后的UI区域是收到数据区,其实在此图中除可看到收到数据外还可能看到一些发送数据的提示,图样的下方可看到每隔5秒由JGB01开发板上发回的实时温度检测值。
(二) APP的JAVA代码部分(使用Android Studio 4.1环境开发) (三) STM32芯片内的C代码部分(使用keil 5.1 环境开发 ) (四) JGB01开发板的硬件制作和烧录部分 (主要部件为STM32F103C8T6最小板 +CP2102芯片的USB串口桥接板+DS18B20温度传感器,所有硬件均为某宝有售的通用部件,所耗费用约为20元, 成本低廉,读者可自行按图样轻易组装 )
