导航:首页 > 编程语言 > 安卓串口编程

安卓串口编程

发布时间:2022-08-20 15:58:54

1. 三菱modbus rtu怎样实现和安卓系统通讯

MODBUS RTU是一个串口通讯协议,使用的就是串口,例如RS232,RS485,因此首先安卓要有RS232或者RS485,才可以进行通讯。

然后软件上,需要对安卓系统进行编程,读取串口的数据,然后根据MODBUS RTU协议,进行分析,最后进行是动作还是显示等的处理。
望采纳。。。。。。

2. android开发板怎么读写串口的数据

楼主问题解决了没?我用串口调试助手调试,安卓端能发送数据到pc端接收,但反过来pc端发数据过来安卓无法接收,求大神指导啊 查看原帖>>

3. 安卓和一个串口设备用usb+otg连接

做usb通信,首先要先弄清楚哪边是HOST那边是SLAVE。
比如你的android手机做host,要获得slave,用UsbDevice表示slave
要是你的android手机做slave,要获得host,用UsbAccessory表示host
以前没有接触过android USB Host编程。来到这个公司后,第一个任务就是写一个android平板的usb host 的demo,和打印机,ic卡等通信。

4. android串口通信如何发送16进制给给下位机

已解决,发送串口帧数据时,对于16进制数据定义,直接用byte[]数组就行了,不需要用Array.fill函数;

5. 我想用Android手机与单片机进行串口通信,从而可以控制单片机,该如何实现呢

不过你还得注意的是手机的USB转串口电平是TTL电平,所以你的单片机板子的串口也得是TTL,在就是分清楚交叉连接或者直连。

6. android平台通过串口发送AT命令

excel中,A1 A2 A3 ,如何实现这样合并A1A2(A3+A1的值)

7. android蓝牙开发,PC端模拟串口接收字符,该如何编程

您好,android蓝牙这方面还是很好搞的,因为大家的方式都是差不多的。先说说如何开启蓝牙设备和设置可见时间:

private void search() {
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if (!adapter.isEnabled()) {
adapter.enable();
}
Intent enable = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
enable.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 3600); //3600为蓝牙设备可见时间
startActivity(enable);
Intent searchIntent = new Intent(this, ComminuteActivity.class);
startActivity(searchIntent);
}

首先,需要获得一个BluetoothAdapter,可以通过getDefaultAdapter()获得系统默认的蓝牙适配器,当然我们也可以自己指定,但这个真心没有必要,至少我是不需要的。然后我们检查手机的蓝牙是否打开,如果没有,通过enable()方法打开。接着我们再设置手机蓝牙设备的可见,可见时间可以自定义。

完成这些必要的设置后,我们就可以正式开始与蓝牙模块进行通信了:

public class ComminuteActivity extends Activity {
private BluetoothReceiver receiver;
private BluetoothAdapter bluetoothAdapter;
private List<String> devices;
private List<BluetoothDevice> deviceList;
private Bluetooth client;
private final String lockName = "BOLUTEK";
private String message = "000001";
private ListView listView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_layout);

listView = (ListView) this.findViewById(R.id.list);
deviceList = new ArrayList<BluetoothDevice>();
devices = new ArrayList<String>();
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
bluetoothAdapter.startDiscovery();
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
receiver = new BluetoothReceiver();
registerReceiver(receiver, filter);

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
setContentView(R.layout.connect_layout);
BluetoothDevice device = deviceList.get(position);
client = new Bluetooth(device, handler);
try {
client.connect(message);
} catch (Exception e) {
Log.e("TAG", e.toString());
}
}
});
}

@Override
protected void onDestroy() {
unregisterReceiver(receiver);
super.onDestroy();
}

private final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case Bluetooth.CONNECT_FAILED:
Toast.makeText(ComminuteActivity.this, "连接失败", Toast.LENGTH_LONG).show();
try {
client.connect(message);
} catch (Exception e) {
Log.e("TAG", e.toString());
}
break;
case Bluetooth.CONNECT_SUCCESS:
Toast.makeText(ComminuteActivity.this, "连接成功", Toast.LENGTH_LONG).show();
break;
case Bluetooth.READ_FAILED:
Toast.makeText(ComminuteActivity.this, "读取失败", Toast.LENGTH_LONG).show();
break;
case Bluetooth.WRITE_FAILED:
Toast.makeText(ComminuteActivity.this, "写入失败", Toast.LENGTH_LONG).show();
break;
case Bluetooth.DATA:
Toast.makeText(ComminuteActivity.this, msg.arg1 + "", Toast.LENGTH_LONG).show();
break;
}
}
};

private class BluetoothReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (isLock(device)) {
devices.add(device.getName());
}
deviceList.add(device);
}
showDevices();
}
}

private boolean isLock(BluetoothDevice device) {
boolean isLockName = (device.getName()).equals(lockName);
boolean isSingleDevice = devices.indexOf(device.getName()) == -1;
return isLockName && isSingleDevice;
}

private void showDevices() {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
devices);
listView.setAdapter(adapter);
}
}

8. android如何读取串口数据

代码如下:
import com.friendlyarm.AndroidSDK.HardwareControler;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;

public class MapGuider_Activity extends Activity{

private int serial_fd=0;
private byte[] serial_RevBuf=new byte[100];
private byte[] serial_SendBuf="fsjajd".getBytes();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.mapguider);
serial_fd=HardwareControler.openSerialPort("/dev/s3c2410_serial1", 115200, 8, 1);
if(serial_fd!=-1)
{
System.out.println("打开串口成功");
HardwareControler.write(serial_fd, serial_SendBuf);
lac_handler.post(RevicePosDataThread);
}
else
{
System.out.println("指定的串口不存在或在其它进程中已被打开");
}
}

@Override
protected void onDestroy() {
// TODO Auto-generated method stub
HardwareControler.close(serial_fd);
System.out.println("关闭串口");
lac_handler.removeCallbacks(RevicePosDataThread);
super.onDestroy();
}

Handler lac_handler =new Handler(){

@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
}

};
Runnable RevicePosDataThread =new Runnable()
{
int err=0;
String s;
public void run() {
// TODO Auto-generated method stub
while(true)
{
//Looper.prepare();
err=HardwareControler.select(serial_fd, 1, 0);
if(err==1)//有数据可读
{
HardwareControler.read(serial_fd, serial_RevBuf, 10);
s=new String(serial_RevBuf);
System.out.println("接收到串口数据"+s);
}
else if(err==0) //无数据可读
{
System.out.println("没有接收到串口数据");
}
else //出错
{
System.out.println("接收到串口数据出错");
}
try {
Thread.sleep(2);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

};

}

9. 如何用易安卓做串口调试软件源码

码使用帮助.txt
│ 目录列表.txt

└—ComAssistant
│ .classpath
│ .project
│ AndroidManifest.xml
│ proguard.cfg
│ project.properties

├—.settings

10. Android平台到底能不能通过串口发送AT指令呢,急!!!

AT命令(Attention)在手机中,用于对modem(也就是移动模块)通过串口命令进行操作,处理与语音电话、短信和数据。

关于AT命令:

  1. Android系统与AT命令

    对于智能手机,AP和BP分离的情况,在AP上的系统通过串口和BP通信是个不错方式。在Android的源码中有一个内部包com.android.internal.telephony中有对AT命令的封装和解析,但这种internal的包开发者不能调用的SDK部分,可以用来封装ROM。这说明Android对AT command的方式是支持的。

  2. 对于Android如何调用AT command

    用root登录命令行,直接对串口进行操作,如echo -e "AT " > /dev/smd0

    具体的串口,不同设备会有不同,甚至不一定会提供。这种方式,开发者是可以调用的,通过Runtime.exec直接执行命令行命令,但要求是root,例如echo -e "ATD123456789; " > /dev/smd0,拨打123456789的号码。

  3. 目前最新的AT命令标准发布与2014.6.27,似乎还活得挺滋润的。但是给出的keywords是UMTS, GSM, command, terminal, LTE这说明CDMA确实很可能不是采用AT命令的方式。

阅读全文

与安卓串口编程相关的资料

热点内容
pdf手写笔 浏览:173
别永远伤在童年pdf 浏览:984
爱上北斗星男友在哪个app上看 浏览:414
主力散户派发源码 浏览:665
linux如何修复服务器时间 浏览:55
荣县优途网约车app叫什么 浏览:473
百姓网app截图是什么意思 浏览:222
php如何嵌入html 浏览:811
解压专家怎么传输 浏览:743
如何共享服务器的网络连接 浏览:132
程序员简易表白代码 浏览:167
什么是无线加密狗 浏览:63
国家反诈中心app为什么会弹出 浏览:68
cad压缩图打印 浏览:102
网页打开速度与服务器有什么关系 浏览:863
android开发技术文档 浏览:65
32单片机写程序 浏览:52
三星双清无命令 浏览:839
汉寿小程序源码 浏览:345
易助erp云服务器 浏览:533