[Açık Kaynak] DWIN Ekranı ve Android Telefon İki Yönlü Bağlantı Kontrolü Müzik Çalma

–DWIN Geliştirici Forumundan

Bu sorun, DWIN geliştirici forumunun ödüllü açık kaynak örneğini - DWIN ekranı ve Android telefonun iki yönlü bağlantı kontrolü müzik çalmasını - zorlamanız için. DWIN akıllı ekran ve Android telefon veri etkileşimini elde etmek için Bluetooth modülü aracılığıyla mühendisler, kullanıcılar Android telefonunu, USB flash sürücüyü şarkı çalmada kolayca kontrol edebilir, duraklatabilir, şarkı ve ses ayarlarını değiştirebilir, akıllı ekran ve Android telefon iki deneyimini yaşayabilir. çok rahat kontrol.

1.C51 Tasarımı
(1) T5L seri bağlantı noktası, oynatma durumunu değiştirmek, ses seviyesini ayarlamak ve Bluetooth durumunu okumak için Bluetooth modülüyle etkileşime girer; referans kodunun bir kısmı aşağıdaki gibidir:
int ana(geçersiz)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA=1;
//UART4_SendStr(“merhaba”,sizeof(“merhaba”));
//WDT_ON();//Watchdog'u açın.
süre(1)
{
//WDT_RST();//Köpeği ayaklandırın
İşlem();
}
}
geçersiz UART4_Init(geçersiz)
{
// UART4 Baud hızı ayarı:
//BODE2_DIV_H=CPU Şebeke frekansı/(8*Baud hızı) .
//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 Baud hızı
//BODE2_DIV_H=0×00;
//FCLK/(8*BÖL)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
geçersiz TenMsHandle(geçersiz)
{
if(!TenmsFlag)
geri dönmek;
TenmsFlag=0;
SourcePress();//Ton üreteci
PlayCtrPress();//Oynatma durumu değişikliği
VolCtrSlider();//Ses seviyesi değişikliği
VolLogSlider();//Ses seviyesi değişikliği
ReadBtState();//Bluetooth durumunu oku
}
geçersiz SourcePress(geçersiz)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(Dokunmatik Tuş[1]==0)
geri dönmek;
Sdata[1]=0;
anahtar(Dokunmatik Tuş[1])
{
case1://U disk
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
kırmak;
case2:// Harici Hat Girişi Girişi
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
kırmak;
vaka3://Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
kırmak;
}
write_dgusii_vp(0×3003,TouchKey,1);
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3000,TouchKey,1);
ReadBtStatecount=0;
}
geçersiz PlayCtrPress(geçersiz)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
if(Dokunmatik Tuş[1]==0)
geri dönmek;
Sdata[1]=0;
anahtar(Dokunmatik Tuş[1])
{
case1:// Önceki şarkı
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
kırmak;
case2:// Oynatmayı Duraklat
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
kırmak;
case3:// Sonraki şarkı
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
kırmak;
}
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2)Android yazılım paketi QT aracılığıyla yazılmıştır, esas olarak akıllı ekran ile Bluetooth bağlantısını ve iletişim kontrolünü gerçekleştirir, referans kodunun bir kısmı aşağıdaki gibidir:
ui->setupUi(bu);
bluetooth_ble_Tool=new Bluetooth_ble_Tool(“dwin_bt(BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
this,&BLE_PairPage::BlueSearchConnectState);
//btchat=yeni BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->hide();
DevicecommHandle=new DeviceComm();
DevicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
DevicecommHandle->InitDevice();
mwin=yeni anakazan();
daha az->gizle();
connect(mwin,&mainwin:layChangeMode,
DevicecommHandle,&DeviceComm:layChangeMode);// Yazma modu değişikliği yapıldı
connect(mwin,&mainwin:layCtrPreNextSt,
DevicecommHandle,&DeviceComm:layCtrPreNextSt);// yandı. bir şarkının üst ve alt kısımlarını yazın
connect(mwin,&mainwin:layMusicVolChange,
DevicecommHandle,&DeviceComm:layMusicVolChange);// Ses seviyesi değişikliğini aşağıya yaz
connect(devicecommHandle,&DeviceComm::ReadPlayMode,
this,[=](int mode){// Geçerli modu ayarlama
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
if(mod==1)
mwin->B_Upan->setChecked(true);
else if(mod==2)
mwin->B_AUX->setChecked(true);
else if(mod==3)
mwin->B_BT->setChecked(true);
});
connect(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
this,[=](int vol){// Ses Düzeyi Göstergesini Ayarlama
mwin->QS_MainVol->setValue(vol);
});
bağlan(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
bu,[=](){
bu->göster();
daha az->gizle();
DevicecommHandle->TimerStopReadDeviceST();
this->ui->progressBar->setValue(0);
});
void BLE_PairPage::on_pushButton_clicked(){
bluetooth_ble_Tool->SetOperUuidServer(QBluetoothUuid(serviceUuid));
//ui->label_localBT->clear();
//ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
bluetooth_ble_Tool->startFindConnectBle();
//bluetooth_ble_Tool->startStateprogressBar();
ui->PushButton->setEnabled(false);
ui->PushButton->setText(“Arama “);
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicetamamlandı,
bu,[=](bool tamam){
ui->PushButton->setEnabled(true);
ui->PushButton->setText(“Bağlı Bluetooth'u algılamaya başla “);
if(tamam==yanlış) {
QMessageBox::information(this,tr(“Arama Durumu”),” Cihaz aranamıyor, lütfen cihazın açık olup olmadığını veya ona başka bir cep telefonunun bağlı olup olmadığını kontrol edin?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int ilerleme){
ui->progressBar->setValue(progress);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr(“bağlantı istemi “),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
else if(Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::information(this,tr(“bağlantı istemi”),” buggy “);
ui->label_tips->setText(“buggy “);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr(“başarıyla bağlanıldı”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“başarıyla bağlanıldı “);
this->gizle();
mwin->göster();
DevicecommHandle->TimerStartReadDeviceST(100);
//btchat->göster();
//bağlantıyı kes(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//this,&BLE_PairPage::BlueSearchConnectState); }
başka{
ui->label_tips->setText(“Bağlantılar aranıyor “); }


Gönderim zamanı: Mayıs-23-2024