–З форуму распрацоўшчыкаў DWIN
Гэтае пытанне для вас, каб падштурхнуць адзначаны ўзнагародамі выпадак з адкрытым зыходным кодам на форуме распрацоўшчыкаў DWIN - экран DWIN і двухбаковае злучэнне тэлефона Android кіруюць прайграваннем музыкі. Інжынеры з дапамогай модуля Bluetooth для дасягнення DWIN інтэлектуальнага экрана і ўзаемадзеяння з дадзенымі тэлефона Android, карыстальнікі могуць лёгка кіраваць тэлефонам Android, флэш-назапашвальнікам USB у прайграванні песні, ставіць на паўзу, змяняць налады песні і гуку, адчуваць інтэлектуальны экран і тэлефон Android два- спосаб зручнага кіравання.
Дызайн 1.C51
(1) Паслядоўны порт T5L узаемадзейнічае з модулем Bluetooth, каб змяняць стан прайгравання, усталёўваць гучнасць і счытваць статус Bluetooth, частка даведачнага кода выглядае наступным чынам:
int асноўны (несапраўдны)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA=1;
//UART4_SendStr(“прывітанне”,sizeof(“прывітанне”));
//WDT_ON();//Уключыць Watchdog.
пакуль (1)
{
//WDT_RST();//Ступіць сабаку
Працэс();
}
}
несапраўдны UART4_Init(несапраўдны)
{
// Налада хуткасці перадачы UART4:
//BODE2_DIV_H=Сеткавая частата працэсара/(8*хуткасць перадачы дадзеных) .
//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 бод
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
несапраўдны TenMsHandle(несапраўдны)
{
калі (!TenmsFlag)
вяртанне;
TenmsFlag=0;
SourcePress();//Гэнэратар тонаў
PlayCtrPress();//Змена стану прайгравання
VolCtrSlider();//Змяненне гучнасці
VolLogSlider();//Змяненне гучнасці
ReadBtState();//Чытанне стану Bluetooth
}
ануляваць SourcePress(ануляваць)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(TouchKey[1]==0)
вяртанне;
Sdata[1]=0;
пераключальнік (сенсарная клавіша [1])
{
case1://U дыск
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
разбіваць;
case2:// Знешні лінейны ўваход
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
разбіваць;
case3://Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
разбіваць;
}
write_dgusii_vp(0×3003,TouchKey,1);
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3000,TouchKey,1);
ReadBtStatecount=0;
}
ануляваць PlayCtrPress(ануляваць)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
if(TouchKey[1]==0)
вяртанне;
Sdata[1]=0;
пераключальнік (сенсарная клавіша [1])
{
case1:// Папярэдняя песня
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
разбіваць;
case2:// Паўза прайгравання
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
разбіваць;
case3:// Наступная песня
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
разбіваць;
}
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}
(2)Пакет праграмнага забеспячэння Android напісаны праз QT, у асноўным рэалізуе злучэнне Bluetooth і кіраванне сувяззю са смарт-экранам, частка даведачнага кода выглядае наступным чынам:
ui->setupUi(гэта);
bluetooth_ble_Tool=новы Bluetooth_ble_Tool(“dwin_bt(BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
злучыць(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
this,&BLE_PairPage::BlueSearchConnectState);
//btchat=новы BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->схаваць();
devicecommHandle=новы DeviceComm();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=новы mainwin();
менш->схаваць();
злучыць(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Выдадзена змена рэжыму запісу
злучыць(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// літ. запісаць верхнюю і ніжнюю часткі песні
злучыць(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Запісаць змяненне гучнасці ўніз
падключыць(devicecommHandle,&DeviceComm::ReadPlayMode,
this,[=](int mode){// Усталёўка бягучага рэжыму
qDebug() qDebug()
mwin->B_AUX->setChecked(хлусня);
mwin->B_BT->setChecked(хлусня);
калі (рэжым == 1)
mwin->B_Upan->setChecked(true);
інакш, калі (рэжым == 2)
mwin->B_AUX->setChecked(true);
інакш, калі (рэжым == 3)
mwin->B_BT->setChecked(true);
});
падключыць(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
this,[=](int vol){// Настройка дысплея гучнасці
mwin->QS_MainVol->setValue(vol);
});
падключыць(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
гэта,[=](){
гэта->паказаць();
менш->схаваць();
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->кнопка->setEnabled(false);
ui->pushButton->setText(“Пошук”);
падключыць(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
гэта,[=](бул нармальна){
ui->кнопка->setEnabled(true);
ui->pushButton->setText(“Пачаць выяўленне падлучанага Bluetooth”);
калі (ок==хлусня) {
QMessageBox::information(this,tr(“Статус пошуку “),” Немагчыма знайсці прыладу, праверце, калі прылада ўжо ўключана, ці да яе ўжо падключаны іншы мабільны тэлефон?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int progress){
ui->progressBar->setValue(прагрэс);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr(“запрашэнне на злучэнне “),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
інакш, калі(Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::інфармацыя(гэта,tr(“запрашэнне на злучэнне “),”глючыць”);
ui->label_tips->setText(“памылка”);}
інакш, калі(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::інфармацыя(
this,tr(“паспяхова падключана “),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“паспяхова падключана”);
гэта->схаваць();
mwin->паказаць();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//адключыць(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//гэта,&BLE_PairPage::BlueSearchConnectState); }
яшчэ {
ui->label_tips->setText(“Пошук злучэнняў “); }
Час публікацыі: 23 мая 2024 г