–Des del Fòrum de Desenvolupadors DWIN
Aquest problema us permet impulsar el premiat cas de codi obert del fòrum de desenvolupadors DWIN: la pantalla DWIN i l'enllaç bidireccional del telèfon Android controlen la reproducció de música. Els enginyers mitjançant el mòdul Bluetooth per aconseguir la interacció de dades de la pantalla intel·ligent DWIN i el telèfon Android, els usuaris poden controlar fàcilment el telèfon Android, la unitat flash USB en la reproducció de la cançó, fer una pausa, canviar la configuració de la cançó i el so, experimentar la pantalla intel·ligent i el telèfon Android dos. control de manera convenient.
1.C51 Disseny
(1) El port sèrie T5L interactua amb el mòdul Bluetooth per modificar l'estat de reproducció, configurar el volum i llegir l'estat de Bluetooth, part del codi de referència és el següent:
int main(void)
{
INIT_CPU();
T2_Calor();
UART4_Init();
EA=1;
//UART4_SendStr ("hola", mida de ("hola"));
//WDT_ON();//Activeu el Watchdog.
mentre (1)
{
//WDT_RST();//Peseja el gos
Procés();
}
}
void UART4_Init(void)
{
// Configuració de la velocitat de transmissió UART4:
//BODE2_DIV_H=Freqüència de xarxa de CPU/(8*Velocitat en baudis) .
//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 Velocitat en baudios
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
void TenMsHandle(void)
{
if(!TenmsFlag)
tornar;
TenmsFlag=0;
SourcePress();//Generador de tons
PlayCtrPress();//Canvi d'estat de reproducció
VolCtrSlider();//Canvi de volum
VolLogSlider();//Canvi de volum
ReadBtState();//Llegir l'estat de Bluetooth
}
void SourcePress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(tecla tàctil[1]==0)
tornar;
Sdata[1]=0;
interruptor (tecla tàctil[1])
{
case1: // disc U
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
trencar;
case2:// Entrada de línia externa
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
trencar;
cas 3://Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
trencar;
}
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(tecla tàctil[1]==0)
tornar;
Sdata[1]=0;
interruptor (tecla tàctil[1])
{
case1:// Cançó anterior
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
trencar;
case2:// Pausa de reproducció
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
trencar;
case3:// Següent cançó
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
trencar;
}
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}
(2) El paquet de programari d'Android s'escriu mitjançant QT, realitzant principalment la connexió Bluetooth i el control de la comunicació amb la pantalla intel·ligent, part del codi de referència és el següent:
ui->setupUi(això);
bluetooth_ble_Tool=nou Bluetooth_ble_Tool ("dwin_bt(BLE)");
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
connect(eina_bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
això,&BLE_PairPage::BlueSearchConnectState);
//btchat=nou BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->amagar();
devicecommHandle=nou DeviceComm();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=new mainwin();
menys->amagar();
connectar(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// S'ha emès un canvi de mode d'escriptura
connect(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit. Escriu la part superior i inferior d'una cançó
connect(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Escriu el canvi de volum
connect(devicecommHandle,&DeviceComm::ReadPlayMode,
això,[=](mode int){// Configurant el mode actual
qDebug() qDebug()
mwin->B_AUX->setChecked(fals);
mwin->B_BT->setChecked(fals);
if(mode==1)
mwin->B_Upan->setChecked(true);
sinó si (mode==2)
mwin->B_AUX->setChecked(true);
sinó si (mode==3)
mwin->B_BT->setChecked(true);
});
connect(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
això,[=](int vol){// Configuració de la visualització del volum
mwin->QS_MainVol->setValue(vol);
});
connect(eina_bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
això,[=](){
això->mostrar();
menys->amagar();
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(fals);
ui->pushButton->setText(“Cercant”);
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
això,[=](bool ok){
ui->pushButton->setEnabled(true);
ui->pushButton->setText(“Comença a detectar Bluetooth connectat”);
if(ok==fals) {
QMessageBox::information(this,tr(“Estat de la cerca”),” No es pot cercar el dispositiu, si us plau, comproveu si el dispositiu ja està encès o si hi ha un altre telèfon mòbil connectat?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int progress){
ui->progressBar->setValue(progrés);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr(“indicador de connexió”),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(“indicador de connexió”),”buggy”);
ui->label_tips->setText(“buggy”);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr("connectat amb èxit"),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“connectat amb èxit”);
això->amagar();
mwin->mostrar();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->mostrar();
//desconnectar(eina_bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//this,&BLE_PairPage::BlueSearchConnectState); }
altrament{
ui->label_tips->setText(“Cercant connexions”); }
Hora de publicació: 23-maig-2024