国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Qt實(shí)現(xiàn)安卓手機(jī)藍(lán)牙通信并控制stm32f103c8t6驅(qū)動(dòng)VFD屏

這篇具有很好參考價(jià)值的文章主要介紹了Qt實(shí)現(xiàn)安卓手機(jī)藍(lán)牙通信并控制stm32f103c8t6驅(qū)動(dòng)VFD屏。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、Qt建立藍(lán)牙通信

Qt具有跨平臺(tái)的特性所以非常適合寫通信的demo,但是在這個(gè)例程中Qt藍(lán)牙部分不支持Windows平臺(tái),安卓平臺(tái)使用沒問題。
Qt藍(lán)牙主要涉及到三個(gè)類的使用:
QBluetoothDeviceDiscoveryAgent //掃描周圍藍(lán)牙設(shè)備
QBluetoothLocalDevice //掃描本地藍(lán)牙
QBluetoothSocket //建立藍(lán)牙的socket讀寫

安卓不支持低功耗藍(lán)牙,但是socket既可以使用經(jīng)典藍(lán)牙也可以使用低功耗藍(lán)牙,本例程使用經(jīng)典藍(lán)牙socket收發(fā)數(shù)據(jù)

1、在.pro工程文件添加

Qt                   +=bluetooth

2、主要代碼Widget.h和Widget.c

#ifndef WIDGET_H
#define WIDGET_H
#pragma execution_character_set("utf-8")   //解決中文亂碼

#include <QWidget>
#include <QObject>
#include <QtBluetooth/qbluetoothlocaldevice.h>
#include <qbluetoothaddress.h>
#include <qbluetoothdevicediscoveryagent.h>
#include <qbluetoothlocaldevice.h>
#include <qbluetoothsocket.h>
#include <QMap>
#include <QTimer>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    void model2_Init();
public slots:
    void addBlueToothDevicesToList(const QBluetoothDeviceInfo&);
    void readBluetoothDataEvent();
    void bluetoothConnectedEvent();
    void bluetoothDisconnectedEvent();
    void onError(QBluetoothSocket::SocketError error);
    void open_BLE();
    void close_BLE();
    void scanFinished();
private:
    QBluetoothDeviceDiscoveryAgent *discoveryAgent;
    QBluetoothLocalDevice *localDevice;
    QBluetoothSocket *socket;
    QByteArray blueArray;
    QMap<QString,QBluetoothAddress>m;
    QBluetoothDeviceInfo remoteDeviceInfo;
    float ff;//隨機(jī)數(shù)緩存
    float div;//每次下降數(shù)
    float sx;//上限
    float t;//時(shí)間
    QString ss;//字符判斷是模式1還是模式2
    QTimer *time;

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

    void on_pushButton_4_clicked();

    void on_pushButton_5_clicked();

    void on_pushButton_3_clicked();

    void on_pushButton_7_clicked();

    void on_pushButton_8_clicked();

    void on_pushButton_9_clicked();

    void on_pushButton_6_clicked();

    void timeProcess();
    void on_pushButton_10_clicked();

    void on_label_7_linkActivated(const QString &link);

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H
## Widget.c
#include "widget.h"
#include "ui_widget.h"
#include <QRandomGenerator>
#include <QLowEnergyController>


//這個(gè)UUID要根據(jù)自己的使用情況來確定,我使用的是串口類的UUID,具體可https://www.jianshu.com/p/eb85cb690e86
static const QLatin1String serviceUuid("00001101-0000-1000-8000-00805F9B34FB");
//static const QLatin1String serviceUuid("FDA50693A4E24FB1AFCFC6EB07647825");
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{

    ui->setupUi(this);

    ui->plainTextEdit->setDisabled(1);

    discoveryAgent = new QBluetoothDeviceDiscoveryAgent(this);
    localDevice = new QBluetoothLocalDevice(this);
    socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol);

    time = new QTimer(this);
    connect(time,SIGNAL(timeout()),this,SLOT(timeProcess()));

    discoveryAgent->start();
    ui->pushButton_4->setDisabled(1);
     connect(discoveryAgent, SIGNAL(finished()), this, SLOT(scanFinished()));//搜索結(jié)束
     connect(discoveryAgent,
            SIGNAL(deviceDiscovered(QBluetoothDeviceInfo)),
            this,
            SLOT(addBlueToothDevicesToList(QBluetoothDeviceInfo))
            );
    connect(socket,SIGNAL(readyRead()),
            this,
            SLOT(readBluetoothDataEvent())
            );
    connect(socket,SIGNAL(connected()),
            this,
            SLOT(bluetoothConnectedEvent())
            );
    connect(socket,SIGNAL(disconnected()),
            this,
            SLOT(bluetoothDisconnectedEvent())
            );
    connect(socket,SIGNAL(error(QBluetoothSocket::SocketError)),this,SLOT(onError(QBluetoothSocket::SocketError)));

}

Widget::~Widget()
{
    delete ui;
    delete discoveryAgent;
    delete localDevice;
    delete socket;
    delete time;
}


void Widget::onError(QBluetoothSocket::SocketError error)
{
    QString str;
    if(QBluetoothSocket::UnknownSocketError == error){
        str = "UnknownSocketError";
    }else if(QBluetoothSocket::NoSocketError == error){
        str = "NoSocketError";
    }else if(QBluetoothSocket::HostNotFoundError == error){
        str = "HostNotFoundError";
    }else if(QBluetoothSocket::ServiceNotFoundError == error){
        str = "ServiceNotFoundError";
    }else if(QBluetoothSocket::NetworkError == error){
        str = "NetworkError";
    }else if(QBluetoothSocket::UnsupportedProtocolError == error){
        str = "UnsupportedProtocolError";
    }else if(QBluetoothSocket::OperationError == error){
        str = "OperationError";
    }else if(QBluetoothSocket::RemoteHostClosedError == error){
        str = "RemoteHostClosedError";
    }
    qDebug()<<error;
    //emit backendRunMesgPost(str);
    //emit backendRunMesgPost("SocketError");
}


void Widget::addBlueToothDevicesToList( const QBluetoothDeviceInfo &info )
{
    remoteDeviceInfo = info;
    qDebug()<<"進(jìn)入addBlueToothDevicesToList函數(shù)!";
    QString label = QString("%1 %2").arg(info.address().toString()).arg(info.name());
    qDebug()<<label;
    ui->comboBox->addItem(info.name());
    if(label.contains("BT04-A")){
    //找到需要連接的藍(lán)牙名字
        int index = label.indexOf(' ');
        if(index == -1){
            qDebug()<<"index";
            return;
        }
        QBluetoothAddress address(label.left(index));
        m[info.name()] = address;//關(guān)聯(lián)藍(lán)牙名字和address
        QString name(label.mid(index + 1));
        qDebug() << "You has choice the bluetooth address is " << address<<name<<endl;
        //qDebug() << "The device is connneting.... ";
        //ui->plainTextEdit_2->setPlainText("You has choice the bluetooth address is "+name);
        //ui->plainTextEdit_2->setPlainText("The device is connneting.... ");
        //emit backendRunMesgPost("The device is connneting");
        //socket->connectToService(address, QBluetoothUuid(serviceUuid) ,QIODevice::ReadWrite);
    }
}

void Widget::readBluetoothDataEvent()
{
    static int cnt = 0;
    QByteArray line = socket->readAll();
    if(line.startsWith("y") || line.startsWith("r"))
        ss = line;
    if(ss.startsWith("y"))
    {
        //ss = "d";
        if(!line.startsWith('y'))
        {
            blueArray.append(line);
        }
        if(cnt < 4)
        {
            ui->plainTextEdit->appendPlainText(QString(blueArray));
            cnt++;
        }
        else
        {
            cnt = 0;
            ui->plainTextEdit->clear();
        }
        //ui->plainTextEdit->setPlainText(QString(blueArray));
        ui->plainTextEdit_2->setPlainText("模式1");
        emit ui->pushButton_3->clicked(1);
    }
    else if(ss.startsWith("r"))
    {
        ss = "d";
        ui->plainTextEdit_2->setPlainText("模式2");
        model2_Init();
        emit ui->pushButton_10->clicked(1);
        emit ui->pushButton_7->clicked(1);
        ss = "d";
    }
    else if(line.startsWith("Flash"))
    {
        ui->plainTextEdit_2->setPlainText(QString(line));
        ss = "d";
    }
}

void Widget::bluetoothConnectedEvent()
{
    qDebug() << "The android device has been connected successfully!";
    ui->plainTextEdit_2->setPlainText("The android device has been connected successfully!");
}

void Widget::bluetoothDisconnectedEvent()
{
    qDebug() << "The android device has been disconnected successfully!";
}

void Widget::open_BLE()
{
    if( localDevice->hostMode() == QBluetoothLocalDevice::HostPoweredOff)//開機(jī)沒有打開藍(lán)牙
        {
           localDevice->powerOn();//調(diào)用打開本地的藍(lán)牙設(shè)備
           discoveryAgent->start();//開始掃描藍(lán)牙
           connect(discoveryAgent,
                  SIGNAL(deviceDiscovered(QBluetoothDeviceInfo)),
                  this,
                  SLOT(addBlueToothDevicesToList(QBluetoothDeviceInfo))
                  );
            ui->plainTextEdit_2->setPlainText("手機(jī)藍(lán)牙已成功打開!");
        }
        else
        {
            qDebug() << "手機(jī)藍(lán)牙已成功打開!";
             ui->plainTextEdit_2->setPlainText("手機(jī)藍(lán)牙已成功打開!");
        }
}

void Widget::close_BLE()
{
    socket->close();
    ui->plainTextEdit_2->setPlainText("藍(lán)牙已斷開!");
}

void Widget::on_pushButton_clicked()//模式一
{
    //ui->plainTextEdit->clear();
    ui->pushButton_2->setDisabled(1);
    ui->pushButton_7->setDisabled(1);
    socket->write("y");
}

void Widget::on_pushButton_2_clicked()//模式二
{
   model2_Init();
   ui->pushButton->setDisabled(1);
   ui->pushButton_3->setDisabled(1);
   if(socket->state() == QAbstractSocket::ConnectedState)
   {
       socket->write("r");
   }
}

void Widget::on_pushButton_4_clicked()//連接藍(lán)牙
{
    discoveryAgent->stop();
    if(ui->comboBox->currentText().startsWith("BT04-A"))
    {
        //低功耗藍(lán)牙連接方式
        /*QLowEnergyController *lowBtControl = QLowEnergyController::createCentral(remoteDeviceInfo);
        lowBtControl->connectToDevice();
        */
        //經(jīng)典藍(lán)牙連接方式
        qDebug() << "連接到的藍(lán)牙是" << m[ui->comboBox->currentText()]<<ui->comboBox->currentText();
        socket->connectToService(m[ui->comboBox->currentText()],QBluetoothUuid(serviceUuid) ,QIODevice::ReadWrite);
        ui->plainTextEdit_2->setPlainText("The device is connneting.... ");
        if(socket->state() == QAbstractSocket::ConnectedState)
            ui->plainTextEdit_2->setPlainText("藍(lán)牙連接成功!");
    }
    else
    {
        ui->plainTextEdit_2->setPlainText("沒有找到目標(biāo)藍(lán)牙!");
    }
}

void Widget::on_pushButton_5_clicked()//斷開連接
{
    close_BLE();
}

void Widget::on_pushButton_3_clicked()//模式一修改數(shù)字
{
    if(socket->write("v"))
    {
        QString str;
        str = ui->lineEdit_6->text();
        str.append('z');
        socket->write(str.toUtf8());
        ui->plainTextEdit_2->setPlainText("成功發(fā)送一條數(shù)據(jù)!v");
    }
}

void Widget::on_pushButton_7_clicked()
{
    if(socket->write("s"))//發(fā)送隨機(jī)數(shù)
    {
        QString str = QString("%1").arg(sx);
        if(str.length() > 4)
            str = str.left(4);
        str.append('x');
        socket->write(str.toUtf8());
    }
}

void Widget::on_pushButton_8_clicked()//切換模式
{
    ui->pushButton->setEnabled(1);
    ui->pushButton_2->setEnabled(1);
    ui->pushButton_7->setEnabled(1);
    ui->pushButton_3->setEnabled(1);

    ui->plainTextEdit->setEnabled(1);
    ui->plainTextEdit->clear();
    ui->plainTextEdit->setDisabled(1);

    time->stop();
}

void Widget::on_pushButton_9_clicked()
{
    open_BLE();
}

void Widget::on_pushButton_6_clicked()
{
    this->close();
}

void Widget::scanFinished()
{
    ui->pushButton_4->setEnabled(1);
}

void Widget::timeProcess()
{
    sx = sx - div;
    QString str;
    str = QString("%1").arg(sx);
    qDebug()<<"sx is " + str<<endl;
    if(sx <= ff)
    {
        sx = ff;
        time->stop();
    }
    ui->plainTextEdit_2->setPlainText("成功發(fā)送一條數(shù)據(jù)!s"+str);
    str = QString("%1").arg(div);
    qDebug()<<"div is " + str<<endl;
    emit ui->pushButton_7->clicked(1);
}

void Widget::model2_Init()
{
    sx = ui->lineEdit_3->text().toUInt();
    t = ui->lineEdit_4->text().toUInt();
    div = (sx - ff)/(t*10);
}

void Widget::on_pushButton_10_clicked()
{
    if(ui->lineEdit->text().isEmpty() == false && ui->lineEdit_2->text().isEmpty() == false )
    {
        std::uniform_real_distribution<float> dist(ui->lineEdit->text().toUInt(), ui->lineEdit_2->text().toUInt());
        ff = dist(*QRandomGenerator::global());
        ui->lineEdit_5->setText(QString::number(ff));
        QString str = ui->lineEdit_5->text();
        if(str.length() > 4)
            str = str.left(4);
        ff = str.toFloat();
        ui->lineEdit_5->setText(QString::number(ff));
        if(ui->lineEdit_3->text().isEmpty() == false && ui->lineEdit_4->text().isEmpty() == false)
        {
            time->start(6000);
        }
    }

}

Qt實(shí)現(xiàn)安卓手機(jī)藍(lán)牙通信并控制stm32f103c8t6驅(qū)動(dòng)VFD屏

二、通過藍(lán)牙模塊控制stm32f103c8t6驅(qū)動(dòng)VFD

藍(lán)牙模塊選擇BT08B藍(lán)牙串口模塊兼容HC-06,只需連接四個(gè)引腳 VCC 、GND、TX、RX即可

下面為VFD模塊驅(qū)動(dòng)程序,采用帶驅(qū)動(dòng)芯片的模塊,直流5V供電即可,stm32可直接驅(qū)動(dòng)模塊引出引腳文章來源地址http://www.zghlxwxcb.cn/news/detail-482761.html

1、VFD_Drive.h

#ifndef _VFD_DRIVE_H
#define _VFD_DRIVE_H

#include "stm32f10x.h"

void VFD_GPIOInit(void);//GPIO初始化

void WriteCMD(u8 cmd);//寫命令
void WriteDATA(u8 data);//寫數(shù)據(jù)

void Clear(void);//清屏
void Cursor_home(void);//光標(biāo)歸位
/*
該指令選擇在每次DDRAM或CGRAM訪問后AC(游標(biāo)位置)是遞增還是遞減,并確定在每次DDRAM寫入后顯示信息的移動(dòng)方向。
該指令還在每次DDRAM寫入后啟用或禁用顯示移位。
*/
void IncCursor(void);//光標(biāo)遞增(向右)
void DecCursor(void);//光標(biāo)遞減(向左)


void DisplayOFForON(u8 i,u8 j,u8 n);//光標(biāo)顯示還是不顯示,i = 1顯示i = 0不顯示,并指定是否閃爍j = 1閃爍,j = 0閃爍,n=1開光標(biāo),n=0關(guān)光標(biāo)
/*
該指令增加或減少AC(光標(biāo)位置),并將顯示信息向左或向右移動(dòng)一個(gè)字符的位置
*/
void CharLeft(void);//字符和光標(biāo)左移
void CharRight(void);//字符和光標(biāo)右移
void CursorLeft(void);//光標(biāo)左移
void CursorRight(void);//光標(biāo)右移


/*
設(shè)置并行口模式DL = 0為4位模式,DL = 1為8位模式
設(shè)置單行顯示還是兩行顯示,N = 0,單行顯示,N = 1兩行顯示
設(shè)置亮度BR = 0  100%亮度,BR = 1   75%亮度,BR = 2   50%亮度,BR = 3    25%亮度
*/
void FunSet(u8 DL,u8 N,u8 BR);//這里固定為兩行顯示,亮度100%,如需更改請(qǐng)查看手冊(cè)重寫函數(shù)

/*該指令將DB5-DB0指定的6位CGRAM地址放入AC(光標(biāo)位置)。后續(xù)的數(shù)據(jù)寫入(讀取)將會(huì)指向(從)CGRAM。*/
u8 CGRAM_addrSet(u8 addr);//返回傳入addr后的命令

/*該指令將DB6-DB0指定的7位DDRAM地址放入AC(光標(biāo)位置)。后續(xù)的數(shù)據(jù)寫入(讀取)將從DDRAM寫入(從DDRAM讀取)。*/
u8 DDRAM_addrSet(u8 addr);//返回傳入addr后的命令

/*該指令將DB7-DB0上的8位數(shù)據(jù)字節(jié)寫入AC尋址的DDRAM或CGRAM位置。
最近的DDRAM或CGRAM地址集指令決定是寫入DDRAM還是CGRAM。
該指令還根據(jù)輸入模式設(shè)置(Entry 

到了這里,關(guān)于Qt實(shí)現(xiàn)安卓手機(jī)藍(lán)牙通信并控制stm32f103c8t6驅(qū)動(dòng)VFD屏的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于stm32F1的藍(lán)牙控制小車 全硬件代碼開源

    基于stm32F1的藍(lán)牙控制小車 全硬件代碼開源

    ? ?“基于stm32F1的藍(lán)牙控制小車”由L898N電機(jī)驅(qū)動(dòng)模塊、電源管理模塊、stm32f1主控模塊、藍(lán)牙串口通信模塊。電機(jī)驅(qū)動(dòng)模塊使用了兩個(gè)L298N芯片來驅(qū)動(dòng)4路電機(jī),使能端連接4路來自主控板的電平信號(hào);電源管理模塊使用了LM2940-5.0芯片進(jìn)行12V到5V的轉(zhuǎn)換,12V用于電機(jī)模塊的供電,

    2023年04月20日
    瀏覽(25)
  • 零基礎(chǔ)DIY四軸飛行器超級(jí)詳細(xì)保姆級(jí)教程(STM32F407ZGT6主控、WIFI圖傳、陀螺儀平衡、氣壓計(jì)/超聲波定高、手機(jī)藍(lán)牙控制等功能)

    零基礎(chǔ)DIY四軸飛行器超級(jí)詳細(xì)保姆級(jí)教程(STM32F407ZGT6主控、WIFI圖傳、陀螺儀平衡、氣壓計(jì)/超聲波定高、手機(jī)藍(lán)牙控制等功能)

    ?????????大四畢業(yè)后暑假?zèng)]事做就花了一點(diǎn)DIY了一個(gè)四軸飛行器,是比較大的那種F450機(jī)架,不是那種PCB板做機(jī)架的小四軸,因?yàn)槲乙彩菑牧慊A(chǔ)開始做的四軸,現(xiàn)在就想把自己的過程寫成博客分享在網(wǎng)上。下面我會(huì)從機(jī)械結(jié)構(gòu)、主控和各傳感器模塊這些方面進(jìn)行詳細(xì)介紹

    2024年02月12日
    瀏覽(23)
  • 基于STM32F103C8T6的HC-06藍(lán)牙通信

    基于STM32F103C8T6的HC-06藍(lán)牙通信

    如果朋友們 遇到了如下問題 ,可以仔細(xì)借鑒本文章和另一篇專門講解 藍(lán)牙通信問題 的文章,一定能夠解決你在藍(lán)牙通信時(shí)遇到的諸多困難 1.在調(diào)試藍(lán)牙模塊AT指令時(shí)無返回值 2.身邊 無USB轉(zhuǎn)TTL模塊 可以直接調(diào)試藍(lán)牙模塊(本人就是由于無模塊花了了整整一天才調(diào)試成功)

    2024年02月03日
    瀏覽(34)
  • stm32與手機(jī)進(jìn)行藍(lán)牙通信(超詳細(xì)版)

    stm32與手機(jī)進(jìn)行藍(lán)牙通信(超詳細(xì)版)

    ????????本人也是小白,看了很多博客都沒做出來,如果你也是小白,希望這篇文章可以幫助你。 ? ? ?這篇文章是為了實(shí)現(xiàn)藍(lán)牙控制stm32燈翻轉(zhuǎn),并且stm32每次返回給手機(jī)的數(shù)字加3,需要其他的功能可直接根據(jù)模板改。 軟件下載鏈接:串口調(diào)試助手:UartAssist串口調(diào)試助

    2024年02月09日
    瀏覽(24)
  • stm32藍(lán)牙模塊通過手機(jī)和電腦雙向通信

    只需將藍(lán)牙連到單片機(jī)上,使用usart3(PB10、PB11)作為藍(lán)牙和單片機(jī)的數(shù)據(jù)傳輸,而電腦的收發(fā)數(shù)據(jù)要是用usart1(PA9、PA10),將數(shù)據(jù)存入數(shù)組中,從而在串口助手中打印值 ?1. 下面是usart.c文件,將io口和串口初始化,并且加入中斷(其中電腦發(fā)送時(shí),所用的中斷需要回車換行,

    2023年04月09日
    瀏覽(28)
  • JDY-31藍(lán)牙模塊遠(yuǎn)程控制STM32F103單片機(jī)

    JDY-31藍(lán)牙模塊遠(yuǎn)程控制STM32F103單片機(jī)

    ? ?手機(jī)app通過藍(lán)牙模塊發(fā)送指令實(shí)時(shí)控制單片機(jī)的外設(shè)功能,比如發(fā)送衣柜開關(guān)門指令(舵機(jī)旋轉(zhuǎn)),衣架上升降落(步進(jìn)電機(jī)正轉(zhuǎn)反轉(zhuǎn)),遠(yuǎn)程開啟去污除濕功能(繼電器控制打開關(guān)閉小風(fēng)扇+加熱片)。 本次例子:手機(jī)APP連接藍(lán)牙模塊遠(yuǎn)程控制SG90舵機(jī)正轉(zhuǎn)(0-180°)和反

    2024年02月01日
    瀏覽(33)
  • HC-05藍(lán)牙模塊連接到安卓手機(jī),實(shí)現(xiàn)通信

    HC-05藍(lán)牙模塊連接到安卓手機(jī),實(shí)現(xiàn)通信

    準(zhǔn)備好的硬件:1、usb轉(zhuǎn)ttl模塊? ?2、hc-05模塊 準(zhǔn)備好的軟件:1、pc端 串口調(diào)試助手 2、手機(jī)軟件 藍(lán)牙調(diào)試器(推薦)? 3、ch340 軟件下載鏈接:串口調(diào)試助手:UartAssist串口調(diào)試助手 V5.0.2-軟件工具-野人家園 (cmsoft.cn) ? ? ? ? ? ? ? ? ? ? ? ? ?藍(lán)牙調(diào)試器:https://pan.baidu.co

    2023年04月10日
    瀏覽(101)
  • HC05藍(lán)牙模塊AT指令與手機(jī)藍(lán)牙控制STM32板載LED

    HC05藍(lán)牙模塊AT指令與手機(jī)藍(lán)牙控制STM32板載LED

    本文講述了HC-05藍(lán)牙模塊的配置和其與STM32F103單片機(jī)的連接。 代碼使用 HAL庫(kù)函數(shù) 編寫。 常見的HC-05模塊: 通過使用AT指令,我們對(duì)藍(lán)牙模塊可以進(jìn)行查看版本號(hào)、波特率、配對(duì)密碼、設(shè)置/查詢?cè)O(shè)備名稱等多達(dá)30多種配置方式。 硬件連接:使用USB轉(zhuǎn)TTL模塊連接電腦和藍(lán)牙模塊

    2024年02月11日
    瀏覽(104)
  • Arduino藍(lán)牙模塊與手機(jī)通信---實(shí)現(xiàn)藍(lán)牙控制LED

    Arduino藍(lán)牙模塊與手機(jī)通信---實(shí)現(xiàn)藍(lán)牙控制LED

    當(dāng)使用 Arduino 進(jìn)行藍(lán)牙通信時(shí),我們可以輕松地實(shí)現(xiàn)與其他藍(lán)牙設(shè)備之間的數(shù)據(jù)交換。藍(lán)牙通信在各種物聯(lián)網(wǎng)和遠(yuǎn)程控制應(yīng)用中非常有用,因?yàn)樗峁┝藷o線連接和簡(jiǎn)便的數(shù)據(jù)傳輸。在本篇博客中,我們將介紹如何在 Arduino 上設(shè)置藍(lán)牙通信,并進(jìn)行基本的數(shù)據(jù)傳輸。 1. 介紹

    2024年02月08日
    瀏覽(22)
  • HC-05(ZS-040)藍(lán)牙模塊使用詳情(藍(lán)牙模塊配置、手機(jī)藍(lán)牙控制單片機(jī)、藍(lán)牙與藍(lán)牙之間的通信)含51、32程序

    HC-05(ZS-040)藍(lán)牙模塊使用詳情(藍(lán)牙模塊配置、手機(jī)藍(lán)牙控制單片機(jī)、藍(lán)牙與藍(lán)牙之間的通信)含51、32程序

    HC-05是一款主從一體化的藍(lán)牙模塊,因此其使用起來比較方便,只需要進(jìn)行簡(jiǎn)單的配置即可。 本文就 手把手的介紹小白入手模塊后如何使用 。 對(duì)于模塊使用:1、藍(lán)牙配置→2、手機(jī)與藍(lán)牙的傳輸→3、手機(jī)通過藍(lán)牙模塊控制單片機(jī)→4、一對(duì)藍(lán)牙之間主—從傳輸數(shù)據(jù),這是一個(gè)

    2023年04月09日
    瀏覽(400)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包