工作学习笔记(深圳xxx公司软件工程师助理)
文章目录
- stm32(正点原子教程)
- 最小系统设计
- 复位电路
- 时钟电路(外部时钟)
- BOOT启动模式电路
- 下载电路
- 开发板资源描述
- stm32探索
- 串口连接
- ISP程序下载(FlyMcu)hex文件下载到开发板
- St-LINK连接(侥幸说自己学会了怎么下载程序,谭总说小学生水平ovo)
- stm32启动模式
- 新建工程模板:寄存器版本(这里听的有点迷,准备试试江协的stm32教程)
- HAL库入门
- 新建HAL库工程
- GPIO工作原理与配置(电路有遗留问题)
- stm32教学(野火 7天入门stm32_HAL库版)
- 总体了解
- stm32CubeMX
- grbl
- 数电
- 数制和码制
- 模电
- Ubuntu
- windows和ubuntu文件互传(FTP,没学会NFS)
- vscode安装和远程连接
- Qt5开发环境搭建
- 交叉编译环境搭建(无敌含金量)
- MobaXterm(linux设备的连接,以及qtUI如何显示在液晶上)
- 原来可以在ubuntu的qt直接添加linux设备的
- 开发板学习
- LED
- 按键
- USB
- TF卡
- ADC
- DHT11
- qt任务
- 将qtUI投射到开发板的液晶
stm32(正点原子教程)
最小系统设计
复位电路
低电平持续一段时间,就会产生复位
时钟电路(外部时钟)
BOOT启动模式电路
下载电路
swd接口是程序调试最简单的接口
开发板资源描述
stm32探索
串口连接
E:\Keil_v5\ARM\STLink\USBDriver
ISP程序下载(FlyMcu)hex文件下载到开发板
St-LINK连接(侥幸说自己学会了怎么下载程序,谭总说小学生水平ovo)
stm32启动模式
新建工程模板:寄存器版本(这里听的有点迷,准备试试江协的stm32教程)
为了让MDK知道头文件在哪
把启动程序和头文件,add到keil让mdk能够识别,然后开始宏定义的工作
在导入了启动文件和头文件之后,要把main函数也加入到工程中。
HAL库入门
Driver文件夹
新建HAL库工程
好的,点了一下魔术棒,电脑被干死机了。。。。。。。。。。
GPIO工作原理与配置(电路有遗留问题)
stm32教学(野火 7天入门stm32_HAL库版)
总体了解
stm32CubeMX
grbl
数电
数制和码制
二进制与八进制转换,三位一组
二进制与十六进制转换,四位一组
模电
Ubuntu
windows和ubuntu文件互传(FTP,没学会NFS)
vscode安装和远程连接
Qt5开发环境搭建
成功!
交叉编译环境搭建(无敌含金量)
俩小时,干了一下午的精髓的活!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
粘贴是 ctrl + shift + v
AI救我命啊!~~~
ctrl + c 是终端编译的退出 输入:wq回车是保存
MobaXterm(linux设备的连接,以及qtUI如何显示在液晶上)
出现了乱码,不明白为什么,第一次搞这个…
下午
串口驱动问题,让我看看怎么事!
串口驱动解决了
但是液晶不亮,谭总也没找到怎么装,下班了~~~~~~~~~~
晚上
液晶显示了,但是还是乱码,g~
一直not found,问ai说是ssh服务的问题,感觉就这样吧,慢慢看这个板子的教学视频就能找到原因了应该。
原来可以在ubuntu的qt直接添加linux设备的
谭老板给我找了个张工,他说他之前做过这个,所以谭工也就是个老板了ovo
而且,张工回头给我了个pdf,让我自己看,说明他也不知道具体怎么解决这个问题。
我已经试过了pdf上面的所有方法,都没有成功,回头问张工,张工把pdf甩给我了:)
开发板学习
LED
按键
USB
TF卡
ADC
ADC(Analog-to-Digital Converter,模数转换器)是一种将模拟信号(如电压、电流等连续变化的物理量)转换为数字信号(离散的数值)的硬件模块。它是嵌入式系统中连接现实世界(模拟量)与数字系统(如MCU、CPU)的关键桥梁。
DHT11
qt任务
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QWidget>
#include <QPushButton>
#include <QGridLayout>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QFrame>
#include <QPainter>
#include <QPolygon>
#include <QMouseEvent>QT_BEGIN_NAMESPACE
QT_END_NAMESPACE// 自定义三角形按钮类
class TriangleButton : public QPushButton
{Q_OBJECTpublic:enum Direction {UP,DOWN,LEFT,RIGHT};TriangleButton(Direction dir, const QString &text, QWidget *parent = nullptr);protected:void paintEvent(QPaintEvent *event) override;private:Direction direction;QString buttonText;
};class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void onUpButtonClicked();void onDownButtonClicked();void onLeftButtonClicked();void onRightButtonClicked();void onReadButtonClicked();private:void setupUI();// UI组件QWidget *centralWidget;QVBoxLayout *mainLayout;QWidget *controlArea;QGridLayout *gridLayout;TriangleButton *upButton;TriangleButton *downButton;TriangleButton *leftButton;TriangleButton *rightButton;QPushButton *readButton;
};#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include <QDebug>// TriangleButton 实现
TriangleButton::TriangleButton(Direction dir, const QString &text, QWidget *parent): QPushButton(parent), direction(dir), buttonText(text)
{setFixedSize(60, 60);setStyleSheet("QPushButton { border: 0px solid black; background-color: lightgray; }""QPushButton:pressed { background-color: darkgray; }");
}void TriangleButton::paintEvent(QPaintEvent *event)
{QPushButton::paintEvent(event);QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing);painter.setPen(QPen(Qt::black, 2));painter.setBrush(QBrush(Qt::black));QPolygon triangle;int centerX = width() / 2;int centerY = height() / 2;int size = 15;switch (direction) {case UP:triangle << QPoint(centerX, centerY - size)<< QPoint(centerX - size, centerY + size)<< QPoint(centerX + size, centerY + size);break;case DOWN:triangle << QPoint(centerX, centerY + size)<< QPoint(centerX - size, centerY - size)<< QPoint(centerX + size, centerY - size);break;case LEFT:triangle << QPoint(centerX - size, centerY)<< QPoint(centerX + size, centerY - size)<< QPoint(centerX + size, centerY + size);break;case RIGHT:triangle << QPoint(centerX + size, centerY)<< QPoint(centerX - size, centerY - size)<< QPoint(centerX - size, centerY + size);break;}painter.drawPolygon(triangle);// 绘制文本painter.setPen(Qt::black);QFont font = painter.font();font.setPointSize(10);painter.setFont(font);QRect textRect;switch (direction) {case UP:textRect = QRect(0, height() - 15, width(), 15);break;case DOWN:textRect = QRect(0, 0, width(), 15);break;case LEFT:textRect = QRect(width() - 20, 0, 25, height());break;case RIGHT:textRect = QRect(0, 0, 15, height());break;}painter.drawText(textRect, Qt::AlignCenter, buttonText);
}// MainWindow 实现
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{setWindowTitle("控制面板");setFixedSize(400, 300);setupUI();// 连接信号和槽connect(upButton, &QPushButton::clicked, this, &MainWindow::onUpButtonClicked);connect(downButton, &QPushButton::clicked, this, &MainWindow::onDownButtonClicked);connect(leftButton, &QPushButton::clicked, this, &MainWindow::onLeftButtonClicked);connect(rightButton, &QPushButton::clicked, this, &MainWindow::onRightButtonClicked);connect(readButton, &QPushButton::clicked, this, &MainWindow::onReadButtonClicked);
}MainWindow::~MainWindow()
{
}void MainWindow::setupUI()
{// 创建中央widgetcentralWidget = new QWidget(this);setCentralWidget(centralWidget);// 创建主布局mainLayout = new QVBoxLayout(centralWidget);// 创建控制按钮区域controlArea = new QWidget();controlArea->setStyleSheet("QWidget { border: 0px solid black; }");gridLayout = new QGridLayout(controlArea);// 创建方向控制按钮upButton = new TriangleButton(TriangleButton::UP, "y-", this);downButton = new TriangleButton(TriangleButton::DOWN, "y+", this);leftButton = new TriangleButton(TriangleButton::LEFT, "x-", this);rightButton = new TriangleButton(TriangleButton::RIGHT, "x+", this);// 创建Read按钮readButton = new QPushButton("Read", this);readButton->setFixedSize(80, 40);readButton->setStyleSheet("QPushButton { border: 2px solid black; background-color: lightblue; }""QPushButton:pressed { background-color: darkblue; color: white; }");// 布局设置gridLayout->addWidget(upButton, 0, 1, Qt::AlignCenter);gridLayout->addWidget(leftButton, 1, 0, Qt::AlignCenter);gridLayout->addWidget(rightButton, 1, 2, Qt::AlignCenter);gridLayout->addWidget(downButton, 2, 1, Qt::AlignCenter);gridLayout->addWidget(readButton, 1, 3, Qt::AlignCenter);// 设置网格间距和边距gridLayout->setSpacing(20);gridLayout->setContentsMargins(30, 30, 30, 30);mainLayout->addWidget(controlArea);
}// 槽函数实现
void MainWindow::onUpButtonClicked()
{qDebug() << "Y- 按钮被点击";// 在这里添加你的Y-控制逻辑
}void MainWindow::onDownButtonClicked()
{qDebug() << "Y+ 按钮被点击";// 在这里添加你的Y+控制逻辑
}void MainWindow::onLeftButtonClicked()
{qDebug() << "X- 按钮被点击";// 在这里添加你的X-控制逻辑
}void MainWindow::onRightButtonClicked()
{qDebug() << "X+ 按钮被点击";// 在这里添加你的X+控制逻辑
}void MainWindow::onReadButtonClicked()
{qDebug() << "Read 按钮被点击";// 在这里添加你的Read功能逻辑
}
谭工给画了一张图,然后我用ai写的,理解了之后,更改了数据,使得文字变得清晰。
将qtUI投射到开发板的液晶