–จากฟอรัมนักพัฒนา DWIN
ปัญหานี้ให้คุณผลักดันกรณีโอเพ่นซอร์สที่ได้รับรางวัลของฟอรัมนักพัฒนา DWIN - หน้าจอ DWIN และโทรศัพท์ Android การควบคุมการเชื่อมโยงสองทางควบคุมการเล่นเพลง วิศวกรผ่านโมดูลบลูทูธเพื่อให้บรรลุหน้าจออัจฉริยะ DWIN และการโต้ตอบข้อมูลโทรศัพท์ Android ผู้ใช้สามารถควบคุมโทรศัพท์ Android, USB แฟลชไดรฟ์ในการเล่นเพลง หยุดชั่วคราว เปลี่ยนการตั้งค่าเพลงและเสียง สัมผัสประสบการณ์หน้าจออัจฉริยะและโทรศัพท์ Android สองเครื่องได้อย่างง่ายดาย การควบคุมที่สะดวก
1.การออกแบบ C51
(1) พอร์ตอนุกรม T5L โต้ตอบกับโมดูลบลูทูธเพื่อปรับเปลี่ยนสถานะการเล่น ตั้งระดับเสียง และอ่านสถานะบลูทูธ ส่วนหนึ่งของรหัสอ้างอิงมีดังนี้:
int main (เป็นโมฆะ)
-
INIT_CPU();
T2_ความร้อน();
UART4_เริ่มต้น();
อีเอ=1;
//UART4_SendStr(“สวัสดี”,ขนาดของ (“สวัสดี”));
//WDT_ON();//เปิด Watchdog
ในขณะที่(1)
-
//WDT_RST();//ตีเท้าสุนัข
กระบวนการ();
-
-
เป็นโมฆะ UART4_Init (เป็นโมฆะ)
-
// การตั้งค่าอัตรารับส่งข้อมูล UART4:
//BODE2_DIV_H=ความถี่หลักของ CPU/(8*อัตรารับส่งข้อมูล)
//206438400/8/115200=224=0xe0
//206438400/8/921600=28=0x1C
//206438400/8=25804800/230400=112=0×70
SCON2T=0×80;
SCON2R=0×80;
BODE2_DIV_H=0×00;//FCLK/(8*DIV)
BODE2_DIV_L=0xe0;// 921600 อัตรารับส่งข้อมูล
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
อีเอส2อาร์=1;
อีเอ=1;
-
เป็นโมฆะ TenMsHandle (เป็นโมฆะ)
-
ถ้า(!TenmsFlag)
กลับ;
TenmsFlag=0;
SourcePress();//เครื่องกำเนิดเสียง
PlayCtrPress();//เปลี่ยนสถานะการเล่น
VolCtrSlider();//การเปลี่ยนแปลงระดับเสียง
VolLogSlider();//การเปลี่ยนแปลงระดับเสียง
ReadBtState();//อ่านสถานะ Bluetooth
-
เป็นโมฆะ SourcePress (เป็นโมฆะ)
-
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
ถ้า(TouchKey[1]==0)
กลับ;
ข้อมูล[1]=0;
สวิตช์(ทัชคีย์[1])
-
case1://U ดิสก์
ข้อมูล[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
หยุดพัก;
case2:// อินพุต LineIn ภายนอก
ข้อมูล[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
หยุดพัก;
กรณีที่ 3://บลูทูธ
ข้อมูล[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
หยุดพัก;
-
write_dgusii_vp(0×3003,TouchKey,1);
memset(TouchKey,0,ขนาดของ(TouchKey));
write_dgusii_vp(0×3000,TouchKey,1);
อ่านBtStatecount=0;
-
เป็นโมฆะ PlayCtrPress (เป็นโมฆะ)
-
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
ถ้า(TouchKey[1]==0)
กลับ;
ข้อมูล[1]=0;
สวิตช์(ทัชคีย์[1])
-
กรณีที่ 1:// เพลงก่อนหน้า
ข้อมูล[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
หยุดพัก;
กรณีที่ 2:// หยุดการเล่นชั่วคราว
ข้อมูล[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
หยุดพัก;
กรณีที่ 3:// เพลงถัดไป
ข้อมูล[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
หยุดพัก;
-
memset(TouchKey,0,ขนาดของ(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
อ่านBtStatecount=0;
-
(2) แพคเกจซอฟต์แวร์ Android เขียนผ่าน QT โดยส่วนใหญ่ตระหนักถึงการเชื่อมต่อบลูทูธและการควบคุมการสื่อสารด้วยหน้าจออัจฉริยะ ส่วนหนึ่งของรหัสอ้างอิงมีดังนี้:
ui->setupUi(นี่);
bluetooth_ble_Tool=ใหม่ Bluetooth_ble_Tool(“dwin_bt(BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
เชื่อมต่อ (bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
นี้&BLE_PairPage::BlueSearchConnectState);
//btchat=ใหม่ BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->hide();
devicecommHandle=อุปกรณ์Comm ใหม่();
อุปกรณ์commHandle->set_ble_Tool(bluetooth_ble_Tool);
อุปกรณ์commHandle->InitDevice();
mwin=เมนวินใหม่();
น้อยกว่า -> ซ่อน ();
เชื่อมต่อ (mwin, & mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// ออกการเปลี่ยนแปลงโหมดการเขียนแล้ว
เชื่อมต่อ (mwin, & mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// สว่าง เขียนส่วนบนและส่วนล่างของเพลง
เชื่อมต่อ (mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// เขียนการเปลี่ยนแปลงระดับเสียงลง
เชื่อมต่อ (devicecommHandle,&DeviceComm::ReadPlayMode,
นี้,[=](โหมด int){// การตั้งค่าโหมดปัจจุบัน
qDebug() qDebug()
mwin->B_AUX->setChecked (เท็จ);
mwin->B_BT->setChecked (เท็จ);
ถ้า(โหมด==1)
mwin->B_Upan->setChecked (จริง);
อย่างอื่นถ้า (โหมด ==2)
mwin->B_AUX->setChecked (จริง);
อย่างอื่นถ้า (โหมด == 3)
mwin->B_BT->setChecked (จริง);
-
เชื่อมต่อ (devicecommHandle,&DeviceComm::ReadPlayMusicVol,
นี้,[=](int vol){// การตั้งค่าการแสดงระดับเสียง
mwin->QS_MainVol->setValue(ฉบับ);
-
เชื่อมต่อ (bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
นี้[=](){
นี่ -> แสดง ();
น้อยกว่า -> ซ่อน ();
อุปกรณ์commHandle->TimerStopReadDeviceST();
นี้->ui->progressBar->setValue(0);
-
เป็นโมฆะ BLE_PairPage::on_pushButton_clicked(){
bluetooth_ble_Tool->SetOperUuidServer(QBluetoothUuid(serviceUuid));
//ui->label_localBT->ชัดเจน();
//ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
bluetooth_ble_Tool->startFindConnectBle();
//bluetooth_ble_Tool->startStateprogressBar();
ui->pushButton->setEnabled(false);
ui->pushButton->setText("กำลังค้นหา ");
เชื่อมต่อ (bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
นี่[=](บูล โอเค){
ui->pushButton->setEnabled(จริง);
ui->pushButton->setText (“เริ่มตรวจจับการเชื่อมต่อ Bluetooth “);
ถ้า(ตกลง==เท็จ) {
QMessageBox::information(this,tr("Search Status ")" ไม่สามารถค้นหาอุปกรณ์ได้ โปรดตรวจสอบว่าอุปกรณ์เปิดอยู่หรือไม่ หรือโทรศัพท์มือถือเครื่องอื่นเชื่อมต่ออยู่หรือไม่?);} }); }
เป็นโมฆะ BLE_PairPage::BlueSearchConnectState (Bluetooth_ble_Tool::startStateprogressBar_em Linkst ความคืบหน้า int){
ui->progressBar->setValue(ความคืบหน้า);
ถ้า (ลิงก์>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr("การเชื่อมต่อพร้อมท์"),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
อย่างอื่นถ้า (Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::information(this,tr("พร้อมท์การเชื่อมต่อ"), รถม้าน้ำ ");
ui->label_tips->setText(“รถม้าน้ำ “);}
อย่างอื่นถ้า (Linkst==Bluetooth_ble_Tool::Ble_Connect_CharacterOk){// QMessageBox::information(
นี่,tr("เชื่อมต่อสำเร็จแล้ว"),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“เชื่อมต่อสำเร็จแล้ว “);
นี่ -> ซ่อน ();
mwin->แสดง();
อุปกรณ์commHandle->TimerStartReadDeviceST(100);
//btchat->show();
// ตัดการเชื่อมต่อ (bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//นี่&BLE_PairPage::BlueSearchConnectState); -
อื่น{
ui->label_tips->setText (“กำลังค้นหาการเชื่อมต่อ “); -
เวลาโพสต์: May-23-2024