– З форуму розробників DWIN
Ця проблема для вас, щоб підштовхнути відзначений нагородами кейс з відкритим кодом на форумі розробників DWIN – екран DWIN і двосторонній зв’язок телефону Android керують відтворенням музики. Інженери за допомогою модуля Bluetooth для досягнення інтелектуального екрана DWIN і взаємодії з даними телефону Android користувачі можуть легко керувати телефоном Android, флеш-накопичувачем USB під час відтворення пісні, призупиняти, змінювати налаштування пісні та звуку, насолоджуватися інтелектуальним екраном і двома телефонами Android спосіб зручного керування.
1.C51 Дизайн
(1) Послідовний порт T5L взаємодіє з модулем Bluetooth для зміни статусу відтворення, налаштування гучності та зчитування стану Bluetooth. Частина контрольного коду така:
int main(void)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA=1;
//UART4_SendStr(“привіт”,sizeof(“привіт”));
//WDT_ON();//Увімкнути Watchdog.
поки (1)
{
//WDT_RST();//Стопи собаку
Процес();
}
}
void UART4_Init(void)
{
// Налаштування швидкості передачі 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;
}
void TenMsHandle(void)
{
якщо (!TenmsFlag)
повернення;
TenmsFlag=0;
SourcePress();//Генератор тонів
PlayCtrPress();//Зміна стану відтворення
VolCtrSlider();//Зміна гучності
VolLogSlider();//Зміна гучності
ReadBtState();//Читання стану Bluetooth
}
void SourcePress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(TouchKey[1]==0)
повернення;
Sdata[1]=0;
перемикач (TouchKey[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;
}
void PlayCtrPress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
if(TouchKey[1]==0)
повернення;
Sdata[1]=0;
перемикач (TouchKey[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->hide();
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);// lit. запишіть верхню та нижню частини пісні
підключення(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Записати зміну гучності вниз
підключення(devicecommHandle,&DeviceComm::ReadPlayMode,
this,[=](режим int){// Встановлення поточного режиму
qDebug() qDebug()
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
якщо (режим==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->pushButton->setEnabled(false);
ui->pushButton->setText(“Пошук “);
підключення(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
це,[=](bool ok){
ui->pushButton->setEnabled(true);
ui->pushButton->setText(“Почати виявлення підключеного Bluetooth”);
if(ok==false) {
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());}
else if(Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::information(this,tr(“запит на з’єднання “),”баггі”);
ui->label_tips->setText(“баггі”);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr(“успішно підключено “),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“успішно підключено “);
це->сховати();
mwin->show();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//відключити(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//це,&BLE_PairPage::BlueSearchConnectState); }
ще{
ui->label_tips->setText(“Пошук з’єднань “); }
Час публікації: 23 травня 2024 р