–Dal forum degli sviluppatori DWIN
Questo numero ti consente di promuovere il pluripremiato caso open source del forum degli sviluppatori DWIN: il collegamento bidirezionale dello schermo DWIN e del telefono Android controlla la riproduzione musicale. Gli ingegneri attraverso il modulo Bluetooth per ottenere lo schermo intelligente DWIN e l'interazione con i dati del telefono Android, gli utenti possono facilmente controllare il telefono Android, l'unità flash USB durante la riproduzione del brano, mettere in pausa, modificare le impostazioni del brano e dell'audio, sperimentare lo schermo intelligente e il telefono Android due- controllo molto conveniente.
1.C51 Progettazione
(1) La porta seriale T5L interagisce con il modulo Bluetooth per modificare lo stato di riproduzione, impostare il volume e leggere lo stato Bluetooth, parte del codice di riferimento è il seguente:
int principale(vuoto)
{
INIT_CPU();
T2_Calore();
UART4_Init();
EA=1;
//UART4_SendStr("ciao",sizeof("ciao"));
//WDT_ON();//Attiva il watchdog.
mentre(1)
{
//WDT_RST();//Piedi il cane
Processi();
}
}
vuoto UART4_Init(vuoto)
{
// Impostazione della velocità di trasmissione UART4:
//BODE2_DIV_H=Frequenza di rete CPU/(8*Baud rate) .
//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 rate
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
void TenMsHandle(void)
{
if(!TemsFlag)
ritorno;
TenmsFlag=0;
SourcePress();//Generatore di toni
PlayCtrPress();//Modifica dello stato di riproduzione
VolCtrSlider();//Cambiamento del volume
VolLogSlider();//Cambiamento del volume
ReadBtState();//Leggi lo stato Bluetooth
}
vuoto SourcePress(vuoto)
{
charTouchKey[2]={0,0};
u8Sdati[2];
read_dgusii_vp(0×3000,TouchKey,1);
se(TastoTouch[1]==0)
ritorno;
Dati[1]=0;
interruttore(TouchKey[1])
{
case1://U disco
Dati[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
rottura;
case2:// Ingresso LineIn esterno
Dati[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
rottura;
case3://Bluetooth
Dati[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
rottura;
}
write_dgusii_vp(0×3003,TouchKey,1);
memset(TouchKey,0,dimensione(TouchKey));
write_dgusii_vp(0×3000,TouchKey,1);
Conteggio ReadBtState=0;
}
void PlayCtrPress(void)
{
charTouchKey[2]={0,0};
u8Sdati[2];
read_dgusii_vp(0×3001,TouchKey,1);
se(TastoTouch[1]==0)
ritorno;
Dati[1]=0;
interruttore(TouchKey[1])
{
case1:// Canzone precedente
Dati[0]=1;
InviaDatiABT(Write_Next_Pre_PT,Sdati,1);
rottura;
case2:// Pausa di riproduzione
Dati[0]=2;
InviaDatiABT(Write_Next_Pre_PT,Sdati,1);
rottura;
case3:// Canzone successiva
Dati[0]=3;
InviaDatiABT(Write_Next_Pre_PT,Sdati,1);
rottura;
}
memset(TouchKey,0,dimensione(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
Conteggio ReadBtState=0;
}
(2)Il pacchetto software Android è scritto tramite QT, realizzando principalmente la connessione Bluetooth e il controllo della comunicazione con lo schermo intelligente, parte del codice di riferimento è il seguente:
ui->setupUi(questo);
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,
questo,&BLE_PairPage::BlueSearchConnectState);
//btchat=nuovo BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->hide();
dispositivocommHandle=nuovo DeviceComm();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=nuovo mainwin();
meno->nascondi();
connect(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Modifica della modalità di scrittura emessa
connect(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit. scrivere la parte superiore e quella inferiore di una canzone
connect(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Scrive la modifica del volume verso il basso
connect(devicecommHandle,&DeviceComm::ReadPlayMode,
this,[=](int mode){// Impostazione della modalità corrente
qDebug() qDebug()
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
se(modalità==1)
mwin->B_Upan->setChecked(true);
altrimenti se(modalità==2)
mwin->B_AUX->setChecked(true);
altrimenti se (modalità==3)
mwin->B_BT->setChecked(true);
});
connect(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
this,[=](int vol){// Impostazione della visualizzazione del volume
mwin->QS_MainVol->setValue(vol);
});
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
questo,[=](){
questo->mostra();
meno->nascondi();
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(“Ricerca in corso “);
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
questo,[=](bool ok){
ui->pushButton->setEnabled(true);
ui->pushButton->setText(“Inizia a rilevare la connessione Bluetooth “);
se(ok==falso) {
QMessageBox::information(this,tr(“Stato ricerca”),” Impossibile cercare il dispositivo, verificare se il dispositivo è già acceso o se è già collegato un altro cellulare?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int progress){
ui->progressBar->setValue(progress);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr(“prompt di connessione”),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(“prompt di connessione”),” buggy “);
ui->label_tips->setText(“buggy “);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr(“connessione riuscita”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“connessione riuscita “);
questo->nascondi();
mwin->mostra();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->mostra();
//disconnect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//questo,&BLE_PairPage::BlueSearchConnectState); }
altro{
ui->label_tips->setText(“Ricerca connessioni “); }
Orario di pubblicazione: 23 maggio 2024