python3.6.8 串口读取16进制不用0a作为换行 用\r\n作为结束
时间: 2023-07-25 21:47:50 浏览: 147
Centos7-python3.6.8-离线rpm包
5星 · 资源好评率100%
}
@Override
protected void onResume() {
super.onResume();
loadContactList();
}
private void loadContactList可以使用 pyserial 库来读取串口数据,并通过指定 `'\r\n'` 作为结束符的方式来() {
contactList.clear();
Cursor cursor = db.query("contact", null, null, null, null, null, null);
解决。以下是一个示例代码:
```python
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600 while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name, timeout=1) # 打开串口
ser.flushInput() # 清空输入缓存
while True:
data"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
Contact contact = new Contact(id, name, phone);
contactList.add = ser.readline().rstrip() # 读取一行数据并去除结尾的换行符
if data:
(contact);
}
cursor.close();
adapter.notifyDataSetChanged();
}
}
```
9. 创建一个 EditContactActivity 类, data_hex = data.hex() # 将字节串转换为十六进制字符串
print(data_hex)
```
在用于添加和编辑联系人,代码如下:
```
public class EditContactActivity extends AppCompatActivity {
private EditText nameEdit;
private EditText phoneEdit;
private Button saveBtn;
private Button deleteBtn;
private ContactDatabaseHelper dbHelper;
private上面的代码中,`serial.Serial()` 函数用于初始化一个串口对象,其中第一个参数是串口的设备 SQLiteDatabase db;
private int contactId = -1;
private String contactName;
private String contactPhone;
@Override
路径,第二个参数是波特率,第三个参数是超时时间。`ser.flushInput()` 用于清 protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_contact);
nameEdit = findViewById(R.id空输入缓存,以免读取到之前的数据。在 `while` 循环中,`ser.readline()` 函数可以.name_edit);
phoneEdit = findViewById(R.id.phone_edit);
saveBtn = findViewById(R.id.save_btn);
deleteBtn = findViewById读取一行数据,其返回值是一个字节串,需要使用 `rstrip()` 方法去除结尾的换行符。如果读取到了数据,就可以进行相应的处理,例如将其转换为十六进制字符串并打(R.id.delete_btn);
dbHelper = new ContactDatabaseHelper(this);
db = dbHelper.getWritableDatabase();
Intent intent = getIntent();
contact印到控制台。
阅读全文