【Nyílt forráskódú】 DWIN képernyő és Android telefon kétirányú kapcsolással vezérli a zenelejátszást

– A DWIN fejlesztői fórumról

Ez a szám a DWIN fejlesztői fórum díjnyertes, nyílt forráskódú tokjának bemutatására szolgál – a DWIN képernyő és az Android telefon kétirányú összekapcsolása vezérli a zenelejátszást. A mérnökök a Bluetooth modulon keresztül a DWIN intelligens képernyő és az Android telefon adatkapcsolatának elérése érdekében a felhasználók könnyen vezérelhetik az Android telefont, az USB flash meghajtót a dal lejátszásában, szünetet tarthatnak, módosíthatják a dal- és hangbeállításokat, megtapasztalhatják az intelligens képernyőt és az Android telefont két- kényelmes vezérlés.

1.C51 Tervezés
(1) A T5L soros port a Bluetooth modullal együttműködve módosítja a lejátszás állapotát, beállítja a hangerőt és kiolvassa a Bluetooth állapotát, a referenciakód egy része a következő:
int main(üres)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA=1;
//UART4_SendStr("hello",sizeof("hello");
//WDT_ON();//A Watchdog bekapcsolása.
míg (1)
{
//WDT_RST();//Láb a kutya
Folyamat();
}
}
érvénytelen UART4_Init(void)
{
// UART4 adatátviteli sebesség beállítása:
//BODE2_DIV_H=CPU hálózati frekvencia/(8*Baud sebesség) .
//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 Adatátviteli sebesség
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
void TenMsHandle(void)
{
if(!TenmsFlag)
Visszatérés;
TenmsFlag=0;
SourcePress();//Hanggenerátor
PlayCtrPress();//Lejátszási állapot módosítása
VolCtrSlider();//Hangerő változtatás
VolLogSlider();//Hangerő változtatás
ReadBtState();//A Bluetooth állapot olvasása
}
void SourcePress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(TouchKey[1]==0)
Visszatérés;
Sdata[1]=0;
kapcsoló (TouchKey[1])
{
case1://U lemez
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
szünet;
case2:// External LineIn bemenet
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
szünet;
case3://Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
szünet;
}
write_dgusii_vp(0×3003,TouchKey,1);
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3000,TouchKey,1);
ReadBtStatecount=0;
}
void PlayCtrPress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
if(TouchKey[1]==0)
Visszatérés;
Sdata[1]=0;
kapcsoló (TouchKey[1])
{
case1:// Előző dal
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
szünet;
case2:// Lejátszási szünet
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
szünet;
case3:// Következő dal
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
szünet;
}
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2) Az Android szoftvercsomag QT-n keresztül íródott, elsősorban a Bluetooth-kapcsolatot és az intelligens képernyővel történő kommunikációvezérlést valósítja meg, a referenciakód egy része a következő:
ui->setupUi(this);
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=new 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=új mainwin();
less->hide();
connect(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Az írási mód módosult
connect(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit. írd le egy dal felső és alsó részét
connect(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Hangerő-változás lefelé írása
connect(devicecommHandle,&DeviceComm::ReadPlayMode,
this,[=](int mód){// Az aktuális mód beállítása
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
if(mód==1)
mwin->B_Upan->setChecked(igaz);
különben ha(mód==2)
mwin->B_AUX->setChecked(igaz);
különben ha(mód==3)
mwin->B_BT->setChecked(igaz);
});
connect(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
this,[=](int vol){// A hangerő-kijelző beállítása
mwin->QS_MainVol->setValue(vol);
});
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
ez,[=](){
this->show();
less->hide();
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("Keresés");
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
ez,[=](jól van){
ui->pushButton->setEnabled(true);
ui->pushButton->setText("Indítsa el a csatlakoztatott Bluetooth észlelését");
if(ok==false) {
QMessageBox::information(this,tr(“Keresés állapota “),” Az eszköz nem kereshető, kérjük ellenőrizze, hogy az eszköz be van-e kapcsolva, vagy nincs-e már csatlakoztatva másik mobiltelefon?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int progress){
ui->progressBar->setValue(haladás);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr("csatlakozási prompt "),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("csatlakozási prompt ")," buggy ");
ui->label_tips->setText("hibás");}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr("sikeresen csatlakoztatva"),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText("sikeres csatlakozás");
this->hide();
mwin->show();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//disconnect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//ez,&BLE_PairPage::BlueSearchConnectState); }
más{
ui->label_tips->setText("Kapcsolatok keresése"); }


Feladás időpontja: 2024. május 23