Android层接收串口数据
16lz
2021-01-25
作者:赵恒晨
在Android中,没有提供直接调用串口的API。因此,要想从串口中获取数据,需要编写Linux层驱动,并用JNI封装函数,为上层程序做为调用。
具体步骤:
1.编写Linux层串口驱动。
(1)首先编写Linux层驱动的头文件,用C语言将串口操作的每个函数头封装到.h文件中,
(2)打开CMD命令行,在当前目录下,输入javah -classpath .jni 文件目录/文件
(3)得到Java的函数封装文件后,用每一个函数名来做为C程序中的函数名,并编写c函数,包括:打开串口,设置波特率,校验位,停止位,读写数据等.
2.编写Android makefile
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE :=uartLOCAL_SRC_FILES := com_example_uart_control_Linuxc.cLOCAL_LDLIBS := -landroid -llog -ldl -L$(LOCAL_PATH)include $(BUILD_SHARED_LIBRARY) 文件名设为Android.mk3.若是Windows平台下安装 cygwin
Cygwin是Linux环境模拟器,Linux驱动需要在linux环境下编译
在本路径下输入ndk-build,若生成.so文件,这编译成功。
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- 为 Android添加底层核心服务
- android things 树莓派B3 GPIO口测试及问题总结
- Android(安卓)nomedia 避免图片等资源泄露在系统图库当中
- windows下cygwin使用ndkr8编译ffmpeg
- 给android设备增加串口功能