【منبع باز】 صفحه نمایش DWIN و تلفن اندرویدی پیوند دو طرفه کنترل پخش موسیقی

-از انجمن توسعه دهندگان DWIN

این موضوع برای شما امکان پذیر است تا کیس منبع باز انجمن توسعه دهندگان DWIN - صفحه نمایش DWIN و اتصال دو طرفه تلفن Android، پخش موسیقی را کنترل کنید. مهندسان از طریق ماژول بلوتوث برای دستیابی به صفحه نمایش هوشمند DWIN و تعامل داده های تلفن اندرویدی، کاربران می توانند به راحتی گوشی اندرویدی، درایو فلش USB را در پخش آهنگ، مکث، تغییر تنظیمات آهنگ و صدا، تجربه صفحه نمایش هوشمند و تلفن اندرویدی را کنترل کنند. راه کنترل راحت.

1.C51 طراحی
(1) پورت سریال T5L برای تغییر وضعیت پخش، تنظیم صدا و خواندن وضعیت بلوتوث با ماژول بلوتوث تعامل دارد، بخشی از کد مرجع به شرح زیر است:
int main (void)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA=1;
//UART4_SendStr("Hello",sizeof("Hello"));
//WDT_ON();// Watchdog را روشن کنید.
در حالی که (1)
{
//WDT_RST();//پای سگ
روند()؛
}
}
void UART4_Init(void)
{
// تنظیم نرخ باود UART4:
//BODE2_DIV_H=فرکانس اصلی CPU/(8* نرخ Baud) .
//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 Baud rate
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
void TenMsHandle(void)
{
if(!TenmsFlag)
برگشت؛
TenmsFlag=0;
SourcePress();// مولد آهنگ
PlayCtrPress();//تغییر وضعیت پخش
VolCtrSlider();//تغییر حجم
VolLogSlider();//تغییر حجم
ReadBtState();//خواندن وضعیت بلوتوث
}
void SourcePress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if (کلید لمسی[1]==0)
برگشت؛
Sdata[1]=0;
سوئیچ (کلید لمسی[1])
{
دیسک case1://U
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
زنگ تفريح؛
case2:// ورودی LineIn خارجی
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 (کلید لمسی[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)بسته نرم افزار اندروید از طریق QT نوشته شده است که عمدتاً اتصال بلوتوث و کنترل ارتباط با صفحه نمایش هوشمند را درک می کند، بخشی از کد مرجع به شرح زیر است:
ui->setupUi(this);
bluetooth_ble_Tool=Bluetooth_ble_Tool جدید("dwin_bt(BLE)");
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
connect(bluetooth_ble_Tool،&Bluetooth_ble_Tool::BlueSearchConnectState،
این،&BLE_PairPage::BlueSearchConnectState);
//btchat=new BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->hide();
devicecommHandle=new DeviceComm();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=new mainwin();
less->hide();
connect(mwin،&mainwin:layChangeMode،
devicecommHandle،&DeviceComm:layChangeMode)؛// تغییر حالت نوشتن صادر شد
connect(mwin،&mainwin:layCtrPreNextSt،
devicecommHandle،&DeviceComm:layCtrPreNextSt);// روشن شد. قسمت های بالایی و پایینی یک آهنگ را بنویسید
connect(mwin،&mainwin:layMusicVolChange،
devicecommHandle،&DeviceComm:layMusicVolChange)؛// تغییر حجم را بنویسید
connect(devicecommHandle,&DeviceComm::ReadPlayMode,
این،[=](حالت int){// تنظیم حالت فعلی
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
اگر (حالت==1)
mwin->B_Upan->setChecked(true);
else if (حالت==2)
mwin->B_AUX->setChecked(true);
else if (حالت==3)
mwin->B_BT->setChecked(true);
})؛
connect(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
این،[=](int vol){// تنظیم نمایشگر میزان صدا
mwin->QS_MainVol->setValue(vol);
})؛
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
این،[=](){
this->show();
less->hide();
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("جستجو");
connect(bluetooth_ble_Tool،&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished،
این،[=](خیلی خوب){
ui->pushButton->setEnabled(true);
ui->pushButton->setText("شروع به شناسایی بلوتوث متصل");
if(ok==نادرست) {
QMessageBox::information(this,tr("وضعیت جستجو")،" دستگاه قابل جستجو نیست، لطفاً بررسی کنید که آیا دستگاه قبلاً روشن است یا تلفن همراه دیگری قبلاً به آن وصل شده است؟");} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst، int progress){
ui->progressBar->setValue(progress);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr("connection prompt"),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("contact prompt")," buggy ");
ui->label_tips->setText("buggy");}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr("با موفقیت متصل شد"),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText("موفقیت متصل شد");
this->hide();
mwin->show();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//disconnect(bluetooth_ble_Tool،&Bluetooth_ble_Tool::BlueSearchConnectState،
//this،&BLE_PairPage::BlueSearchConnectState); }
دیگر{
ui->label_tips->setText("جستجوی اتصالات"); }


زمان ارسال: مه-23-2024