娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

實現STM32開發板計算機傳送數據就需要準備好STM32開發板和上位接收程序

上位機部分使用QT開發,版本為5.8.0

STM32部分使用STM32F429芯片,開發環境為uVision V5.24.2.0


上位機效果為:

在這里插入圖片描述


代碼如下:

mainwindow.h文件:


#ifndef MAINWINDOW_H

#define MAINWINDOW_H


#include

#include

#include

#include


namespace Ui {

class MainWindow;

}


class MainWindow : public QMainWindow

{

    Q_OBJECT


public:

    explicit MainWindow(QWidget *parent = 0);

    ~MainWindow();


private slots:

    void on_clearButton_clicked();


    void on_sendButton_clicked();


    void on_openButton_clicked();


    void Read_Data();

private:

    Ui::MainWindow *ui;

    QSerialPort *serial;

};


#endif // MAINWINDOW_H


mainwindow.cpp文件:


#include "mainwindow.h"

#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);

    //查找可用的串口

    foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts())

    {

        QSerialPort serial;

        serial.setPort(info);

        if(serial.open(QIODevice::ReadWrite))

        {

            ui -> PortBox ->addItem(serial.portName());

            serial.close();

        }

    }


    //設置波特率下拉菜單默認顯示第三項

    ui -> BaudBox -> setCurrentIndex(3);

    //關閉發送按鈕的使能

    ui -> sendButton -> setEnabled(false);

    qDebug() << tr("界面設定成功!");

}


MainWindow::~MainWindow()

{

    delete ui;

}


//清空接收窗口

void MainWindow::on_clearButton_clicked()

{

    ui -> textEdit -> clear();

}


void MainWindow::on_sendButton_clicked()

{

    serial -> write(ui -> textEdit_2 -> toPlainText().toLatin1());

}


void MainWindow::Read_Data()

{

    QByteArray buf;

    buf = serial -> readAll();

    if(!buf.isEmpty())

    {

        QString str = ui -> textEdit -> toPlainText();

        str += tr(buf);

        ui -> textEdit -> clear();

        ui -> textEdit -> append(str);

    }

    buf.clear();

}


void MainWindow::on_openButton_clicked()

{

    if(ui -> openButton -> text() == tr("打開串口"))

    {

        serial = new QSerialPort;

        //設置串口名

        serial -> setPortName(ui -> PortBox -> currentText());

        //打開串口

        serial -> open(QIODevice::ReadWrite);

        //設置波特率

        serial -> setBaudRate(ui -> BaudBox -> currentText().toInt());

        //設置數據位

        switch(ui -> BitNumBox -> currentIndex())

        {

        case 8:

            serial -> setDataBits(QSerialPort::Data8);

            break;

        default:

            break;

        }

        //設置奇偶校驗位

        switch(ui -> ParityBox -> currentIndex())

        {

        case 0:

            serial -> setParity(QSerialPort::NoParity);

            break;

        default:

            break;

        }

        //設置停止位

        switch(ui -> StopBox -> currentIndex())

        {

        case 1:

            serial -> setStopBits(QSerialPort::OneStop);

            break;

        case 2:

            serial -> setStopBits(QSerialPort::TwoStop);

            break;

        default:

            break;

        }


        //設置控制流

        serial -> setFlowControl(QSerialPort::NoFlowControl);

        //關閉設置菜單使能

        ui -> PortBox -> setEnabled(false);

        ui -> BaudBox -> setEnabled(false);

        ui -> BitNumBox -> setEnabled(false);

        ui -> ParityBox -> setEnabled(false);

        ui -> StopBox -> setEnabled(false);

        ui -> openButton -> setText(tr("關閉串口"));

        ui -> sendButton -> setEnabled(false);

    }

    else

    {

        //關閉串口

        serial -> clear();

        serial -> close();

        serial -> deleteLater();

        //恢復設置使能

        ui -> PortBox -> setEnabled(true);

        ui -> BaudBox -> setEnabled(true);

        ui -> BitNumBox -> setEnabled(true);

        ui -> ParityBox -> setEnabled(true);

        ui -> StopBox -> setEnabled(true);

        ui -> openButton -> setText(tr("打開串口"));

        ui -> sendButton -> setEnabled(true);

    }


    //連接信號槽

    QObject::connect(serial, &QSerialPort::readyRead, this, &MainWindow::Read_Data);

}


main.c文件為:


#include "mainwindow.h"

#include


int main(int argc, char *argv[])

{

    QApplication a(argc, argv);

    MainWindow w;

    w.show();


    return a.exec();

}



mainwidow.ui為:


在這里插入圖片描述

STM32硬件驅動程序代碼如下:

main.c文件:


#include "sys.h"

#include "delay.h"

#include "usart.h"

#include "led.h"


int main(void)

{

u8 t;

u8 len;

u16 times = 0;

Stm32_Clock_Init(360, 25, 2, 8);

delay_init(180);

uart_init(90, 115200);

LED_Init();

while(1)

{

if(USART_RX_STA & 0x8000)

{

len = USART_RX_STA & 0x3fff;

printf("rn You send information is: rn");

for(t = 0; t < len; t++)

{

USART1 -> DR = USART_RX_BUF[t];

while(0 == (USART1 -> SR & 0x40));

}

printf("rnrn");

USART_RX_STA = 0;

}

else

{

times++;

if(0 == times % 5000)

{

printf("rnALIENTEK MXX STM32F4/F7 develop board Serial testrn");

printf("mengxiangxing@MXXrnrnrn");

}

if(0 == times % 200)

{

printf("Please input data and end with ENTERrn");

}

if(0 == times % 30)

{

LED0 = !LED0;

}

delay_ms(10);

}

}

}


串口初始化代碼:


void uart_init(u32 pclk2,u32 bound)

{   

float temp;

u16 mantissa;

u16 fraction;    

temp=(float)(pclk2*1000000)/(bound*16);

mantissa=temp;

fraction=(temp-mantissa)*16;

    mantissa<<=4;

mantissa+=fraction; 

RCC->AHB1ENR|=1<<0;   

RCC->APB2ENR|=1<<4;  

GPIO_Set(GPIOA,PIN9|PIN10,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);

  GPIO_AF_Set(GPIOA,9,7); //PA9,AF7

GPIO_AF_Set(GPIOA,10,7);//PA10,AF7     

//2¨ì??êéè??

  USART1->BRR=mantissa;

USART1->CR1&=~(1<<15);

USART1->CR1|=1<<3; 

#if EN_USART1_RX   

USART1->CR1|=1<<2; 

USART1->CR1|=1<<5;       

MY_NVIC_Init(3,3,USART1_IRQn,2);

#endif

USART1->CR1|=1<<13; 

}


由此變簡單的實現了STM32向PC機發送數據程序。



關鍵字:STM32F4  串口  接收程序 引用地址:STM32F4之串口(三)

上一篇:STM32F4之按鍵(二)
下一篇:ARM - STM32 使用11.0592MHz晶振

推薦閱讀

ADC的內部通道: STM32的ADC除了可以用外部通道來采集外部模擬電壓信號之外,還有兩個內部通道16和17。其中通道16是連接至芯片上的溫度傳感器,通道17是連接至內部電源模塊.(所以這兩個通道可以用來檢測STM32芯片d額溫度和電源狀態,就可以檢測芯片運行的狀態啦!)溫度檢測實例: 通道16是把內部溫度傳感器輸出的模擬電壓轉換成數字值,通過公式運算我們...
8051的片內主要包含以下的資源: #1個8位的CPU(8位是指它一次性可進行8位數據的操作) #4KB的內部ROM(在8051中,程序和一些表格數據是存放在ROM之中的,我們又把ROM稱為程序存儲器) #128B的內部RAM(在8051中,數據是存放在RAM之中的,我們又把RAM稱為數據存儲器) #4個8位的I/O口(P0—P3) #2個16位的定時/計數器(T0和T1)...
近日,華為HiLink生態產品新增一員,超廣角自然風風扇。相比于傳統的風扇,該風扇超廣角設計,可以左右擺頭120°,手動俯仰90°,完全打破了傳統的風扇小范圍直吹的弊端。目前,該產品已在華為商城上發起眾籌。據悉,該風扇的超廣角設計使風速更柔和,避免了風流的直吹,且外圈風力更加發散。此外,具備直流變頻等特點。此風扇不僅低功耗,而且低噪聲,最...
CEVA藍牙雙模5.2平臺獲得SIG認證,加速TWS耳塞及各種產品的IC設計RivieraWaves藍牙雙模5.2 IP平臺深受開發無線音頻IC之半導體企業和OEM廠商歡迎,獲授權許可方已超過15家CEVA,全球領先的無線連接和智能傳感技術的授權許可廠商(NASDAQ:CEVA) 宣布其RivieraWaves 藍牙 雙模5.2平臺已獲得藍牙技術聯盟(SIG)認證。該平臺同時支持業界廣泛采用的藍牙Class...

史海拾趣

問答坊 | AI 解惑

數碼管時鐘

給大家共享下咯…

查看全部問答∨

用過研華PCL816卡的看過來

第一次調理板卡,遇到點問題,急尋解決方法,謝謝! …

查看全部問答∨

單片機c51頻率計

有沒有c51頻率計的代碼呀,呵呵最好是用中斷2的。謝謝啦…

查看全部問答∨

TTL轉232,232轉USB,遇到點困惑

我的連線方式是:板子+TTL轉RS232+RS232轉USB+PC。 “+”代表連接,這樣轉換會有什么問題么,為什么收不到數據呢。 直接將TTL轉232接到PC機上就能收到,并且RS232轉USB的線肯定是好的,希望懂得朋友指點迷津,謝謝了…

查看全部問答∨

wince5.0安裝問題??急!!!

為何總提示要在.NET Frame 1.1下安裝,可我的系統(winxp)已經裝了 microsoft visual studio 2005 和 microsoft .net Framework SDK V2.0   ???…

查看全部問答∨

VS2005環境下EDB數據庫編程的問題

請問下 用到EDB數據庫編程時 在“VS2005|項目|屬性|屬性配置|C/C++|預處理器”是怎樣設置的。 我的做法是在后面加了“EDB”,但出現好多錯誤: error C2065: \'CEPROPSPEC\' : undeclared identifier ………

查看全部問答∨

請問2440下的串口如何改變序號啊?

我用的是2440+ce5.0,是優龍的BSP,后來發現原來用的是UART1作為調試串口,而UART0用做功能串口。現在我把bootloader里面和BSP下面的相應的UART0和UART1的地址定義交換了,發現UART0是可以做調試串口了,但是UART1卻無法收發數據。在platform.reg下 ...…

查看全部問答∨

新手請問2440一定要買JLINK嗎

我想從頭自學嵌入式,就在網上買了套MINI2440開發板,那個店主說調試要用到并口,我的電腦沒有并口,一定要買那個JLINK嗎,要180元,好貴。。。…

查看全部問答∨

關于nand ecc?

常見ecc 源碼中: static const u_char nand_ecc_precalc_table[] =   {     0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00,     0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x ...…

查看全部問答∨

CCS2

------------------------------  test.pjt - Debug  ------------------------------ [Linking...] \\"C:\\\\ti\\\\c2000\\\\cgtools\\\\bin\\\\cl2000\\" -@\\"Debug.lkf\\" >> warning: entry point symbol _ ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 济宁市| 东乌珠穆沁旗| 襄垣县| 南靖县| 叙永县| 乌鲁木齐县| 泰宁县| 兰坪| 襄城县| 乌兰浩特市| 大化| 大厂| 耿马| 周宁县| 诸城市| 防城港市| 永善县| 古浪县| 麦盖提县| 博客| 历史| 报价| 奉贤区| 巴林右旗| 阜南县| 逊克县| 兴和县| 河西区| 平昌县| 原阳县| 旌德县| 侯马市| 恭城| 泸溪县| 济宁市| 东乌| 衡东县| 龙江县| 贡山| 衡阳市| 阿勒泰市|