安卓设备通过USB串口与STM32单片机通讯之一

APP通过USB串口与STM32F103C8T6单片机的通讯例子

   本博文系JGB联合商务组的原创作品,引用请标明出处。

(一) 引言和总体概念

为了不浪费读者时间,先送上此实验场景图(不感兴趣者忽略之):
在这里插入图片描述
各个组成部件的分解图如下:
在这里插入图片描述
本串口调试器支持如下几种USB串口芯片:
PL2303,CP2102,CH340。 这三种芯片均经过本博主亲测可用。

本APP支持的安卓版本: 目前已在Android 4.2,Android 4.4, Android 8.1,
Android 9.0 的安卓设备上测试OK(前两种版本分别是某品牌的安卓电视屏和机顶盒,后两种版本是两款华为手机)。

为方便本博文在以后的描述,我暂时把其中的核心模块称为JGB01开发板,它其实由USB串口桥接器和STM32F103最小开发板简单连接而成,外观如下:
在这里插入图片描述

对于UI界面的介绍,我将以APP安装在某安卓竖屏电视上的效果图(也可以安装在android机顶盒,效果类似)为例来简单说明其各部分含义:

在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元, 成本低廉,读者可自行按图样轻易组装 )

在下一篇博文中我要写的内容昰:

(二) APP的JAVA代码部分(使用Android Studio 4.1环境开发)

猜你喜欢

转载自blog.csdn.net/weixin_42038778/article/details/112002700