【Código abierto】 Pantalla DWIN y teléfono Android Control de enlace bidireccional Reproducción de música

–Del Foro de Desarrolladores de DWIN

Este número le permite impulsar el galardonado caso de código abierto del foro de desarrolladores DWIN: la pantalla DWIN y el enlace bidireccional del teléfono Android controlan la reproducción de música. Ingenieros a través del módulo Bluetooth para lograr la pantalla inteligente DWIN y la interacción de datos del teléfono Android, los usuarios pueden controlar fácilmente el teléfono Android, la unidad flash USB en la reproducción de canciones, pausar, cambiar la configuración de la canción y el sonido, experimentar la pantalla inteligente y el teléfono Android en dos ocasiones. Manera cómoda de controlar.

1.C51 Diseño
(1) El puerto serie T5L interactúa con el módulo Bluetooth para modificar el estado de reproducción, configurar el volumen y leer el estado de Bluetooth. Parte del código de referencia es el siguiente:
int principal (vacío)
{
INIT_CPU();
T2_Calor();
UART4_Init();
EA=1;
//UART4_SendStr(“hola”,sizeof(“hola”));
//WDT_ON();//Activa el perro guardián.
mientras(1)
{
//WDT_RST();//Pies al perro
Proceso();
}
}
vacío UART4_Init (vacío)
{
// Configuración de velocidad de baudios UART4:
//BODE2_DIV_H=Frecuencia de red de la CPU/(8*Velocidad de baudios).
//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 Velocidad de transmisión
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
vacío TenMsHandle (vacío)
{
si(!TenmsFlag)
devolver;
TenmsFlag=0;
SourcePress();//Generador de tonos
PlayCtrPress();//Cambio de estado de reproducción
VolCtrSlider();//Cambio de volumen
VolLogSlider();//Cambio de volumen
ReadBtState();//Leer el estado de Bluetooth
}
anular SourcePress (anular)
{
charTouchKey[2]={0,0};
u8Sdatos[2];
read_dgusii_vp(0×3000,TouchKey,1);
si (tecla táctil [1] == 0)
devolver;
DatosS[1]=0;
cambiar (tecla táctil [1])
{
case1://disco U
DatosS[0]=1;
EnviarDatosABT(Write_Run_Mode,Sdata,1);
romper;
case2:// Entrada de línea externa
DatosS[0]=2;
EnviarDatosABT(Write_Run_Mode,Sdata,1);
romper;
caso3://Bluetooth
Datos[0]=3;
EnviarDatosABT(Write_Run_Mode,Sdata,1);
romper;
}
write_dgusii_vp(0×3003,TouchKey,1);
memset(TouchKey,0,tamaño de(TouchKey));
write_dgusii_vp(0×3000,TouchKey,1);
ReadBtStatecount=0;
}
anular PlayCtrPress (anular)
{
charTouchKey[2]={0,0};
u8Sdatos[2];
read_dgusii_vp(0×3001,TouchKey,1);
si (tecla táctil [1] == 0)
devolver;
DatosS[1]=0;
cambiar (tecla táctil [1])
{
case1:// Canción anterior
DatosS[0]=1;
EnviarDatosABT(Write_Next_Pre_PT,Sdata,1);
romper;
case2:// Pausa de reproducción
DatosS[0]=2;
EnviarDatosABT(Write_Next_Pre_PT,Sdata,1);
romper;
case3:// Siguiente canción
Datos[0]=3;
EnviarDatosABT(Write_Next_Pre_PT,Sdata,1);
romper;
}
memset(TouchKey,0,tamaño de(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2) El paquete de software de Android está escrito a través de QT, principalmente realizando la conexión Bluetooth y el control de comunicación con la pantalla inteligente. Parte del código de referencia es el siguiente:
ui->setupUi(esto);
bluetooth_ble_Tool=nueva Bluetooth_ble_Tool(“dwin_bt(BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
conectar(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
esto,&BLE_PairPage::BlueSearchConnectState);
//btchat=nuevo BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->ocultar();
dispositivocommHandle=nuevo DispositivoComm();
dispositivocommHandle->set_ble_Tool(bluetooth_ble_Tool);
dispositivocommHandle->InitDevice();
mwin=nueva ganancia principal();
menos->ocultar();
conectar(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Cambio de modo de escritura emitido
conectar(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// iluminado. escribir las partes superior e inferior de una canción
conectar (mwin y mainwin: layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Escribir el cambio de volumen hacia abajo
conectar(devicecommHandle,&DeviceComm::ReadPlayMode,
this,[=](int mode){// Configurando el modo actual
qDebug() qDebug() B_Upan->setChecked(falso);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(falso);
si(modo==1)
mwin->B_Upan->setChecked(verdadero);
de lo contrario si (modo == 2)
mwin->B_AUX->setChecked(verdadero);
de lo contrario si (modo == 3)
mwin->B_BT->setChecked(verdadero);
});
conectar(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
this,[=](int vol){// Configuración de la visualización del volumen
mwin->QS_MainVol->setValue(vol);
});
conectar(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
esto,[=](){
esto->mostrar();
menos->ocultar();
dispositivocommHandle->TimerStopReadDeviceST();
this->ui->progressBar->setValue(0);
});
anular 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(“Buscando”);
conectar(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinalizado,
esto,[=](bool ok){
ui->pushButton->setEnabled(verdadero);
ui->pushButton->setText(“Comenzar a detectar Bluetooth conectado”);
si(ok==falso) {
QMessageBox::information(this,tr(“Estado de búsqueda “),” No se puede buscar el dispositivo, verifique si el dispositivo ya está encendido o si ya hay otro teléfono celular conectado a él?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int progreso){
ui->progressBar->setValue(progreso);
if(Enlace>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr(“mensaje de conexión”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
de lo contrario si (Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::información(this,tr(“mensaje de conexión “),” con errores “);
ui->label_tips->setText(“con errores”);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::información(
this,tr(“conectado exitosamente”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“conectado exitosamente”);
esto->ocultar();
mwin->mostrar();
dispositivocommHandle->TimerStartReadDeviceST(100);
//btchat->mostrar();
//desconectar(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//esto,&BLE_PairPage::BlueSearchConnectState); }
demás{
ui->label_tips->setText(“Buscando conexiones”); }


Hora de publicación: 23 de mayo de 2024