–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()
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