当前位置: 首页 > news >正文

工作学习笔记(深圳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投射到开发板的液晶

在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/298482.html

相关文章:

  • Map学习笔记
  • 扫描对方是否开启局域网远程桌面
  • Windows安装压缩包形式的PostgreSQL
  • Python 列表排序:快速上手指南
  • Palindrome Reorder
  • 腾讯研究院:AI Coding引发编程范式革命
  • 微信小程序动态切换窗口主题色
  • 多智能体强化学习入门:从基础到 IPPO 算法—强化学习(20)
  • 2507C++,C++协程的发送者
  • 浅谈生成式AI语言模型的现状与展望
  • haproxy七层代理(原理)
  • SawtoothSoftware 模板注入漏洞复现(CVE-2025-34300)
  • 8.异常处理:优雅地处理错误
  • ISIS高级特性GR
  • Springboot+activiti启动时报错XMLException: Error reading XML
  • 优思学院|QC七大手法之一的检查表应如何有效使用?
  • 【unitrix】 6.15 “非零非负一“的整数类型(NonZeroNonMinusOne)特质(non_zero_non_minus_one.rs)
  • 亚马逊广告策略:如何平衡大词和长尾词的效果?
  • 倩女幽魂手游代言人杨洋携剑仙入世 仙姿临世锋芒毕露
  • docker-compose:未找到命令的检查步骤和修复
  • ABP VNext + OData:实现可查询的 REST API
  • 服务端处于 TIME_WAIT 状态的 TCP 连接,收到相同四元组的 SYN 后会发生什么?详解
  • HCIP上HCIA复习静态综合实验
  • 移动端设备能部署的llm
  • 系统日志与用户信息绑定实现日志跟踪
  • 前端基础知识Vue系列 - 27(Vue项目中如何解决跨域)
  • 从 SQL Server 到 KingbaseES V9R4C12,一次“无痛”迁移与深度兼容体验实录
  • js基础概念-1
  • 牛客NC16660 [NOIP2004]FBI树(递归 + 二叉树后序遍历)
  • electron中IPC 渲染进程与主进程通信方法解析