- 博客(48)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 Linux 自动发送本机 IP 到邮箱
1. 前言在使用 SSH 连接嵌入式 Linux 主板时,经常会遇到不知道板子 IP 的情况,这时就要通过串口登录或者其他方式查找 IP,然后再进行远程连接,很是繁琐。如果能在 Linux 主板开机后,自动上报 IP,这样就方便很多了。利用 Python 中的 yagmail 库,可以很简单的实现。2. yagmail在 Python 里发邮件,yagmail 应该是最简单的方式了。yagmail官网 已经有很详细的说明,这里只记录一下我的操作步骤。2.1 安装 yagmailpython
2022-05-12 14:06:17
1306
原创 STM32MP157学习笔记(四) ---- Debian文件系统移植
一、构建 Debian for ARMLinux 主机环境$ uname -aLinux lodge-ubuntu 5.11.0-35-generic #37~20.04.1-Ubuntu SMP Mon Sep 13 13:30:34 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux1、安装构建工具sudo apt-get install binfmt-support qemu qemu-user-static debootstrap multistra
2021-09-18 17:56:27
1873
原创 STM32MP157学习笔记(三) ---- A7开发环境搭建
Development Platform:STM32MP157A-DK1 (官方 demo 板)Host PC:Ubuntu20.04Source Code:OpenStLinux (官方源码)一、安装 SDK1、下载en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar.xz2、安装# 解压缩tar xvf en.SDK-x86_64-stm32mp1-openstlinux-5.10-dunfel
2021-08-26 21:50:39
1085
原创 STM32MP157学习笔记(二) ---- Linux系统启动
一、启动流程STM32MP1 是面向 Linux 领域的,其启动 Linux 内核的流程如下:STM32MP1 启动 linux 内核一共分为 5 个步骤,我们依次来看一下这五个步骤的内容:①、 ROM 代码前面说了很多次了,这是 ST 自己编写的代码,在 STM32MP1 出厂的时候就已经烧写进去的,不能被修改的。 ROM 代码因为保存在 STM32 内部 ROM 里面,因此也就直接简单明了的叫做“ROM 代码”了。它是处理器上电以后首先执行的程序, ROM 代码的主要工作就是读取
2021-08-24 11:23:03
623
原创 STM32MP157学习笔记(一) ---- M4内核开发基础知识
一、前言1、简介STM32MP1 是 ST 推出的首款 Cortex-A7(下文统一简称为 A7) +Cortex-M4(下文统一简称 M4) 多核异构 MPU, A7 可以运行 Linux 系统,借助 Linux 系统庞大而丰富的软件组件处理复杂应用。比如 UI 界面、网络应用等, M4 内核的优势就是实时性,因此可以在 M4 内核上运行对于实时性要求严格的应用,比如电机控制、无人机飞控等各种控制算法。 M4 也可以运行各种 RTOS 操作系统,比如 FreeRTOS、 U...
2021-08-13 19:21:08
7646
1
原创 树莓派调试记录
(主机环境:Ubuntu 20.04.2 LTS 、树莓派:Raspberry Pi 4 Model B)一、获取Raspberry Kernel源码cd ~/raspberry/linux #选择源码下载位置(自定义)sudo apt-get install git #安装git#官方的github地址,获取源码git clone --depth=1 --branch rpi-5.13.y https://github.com/rasp
2021-08-12 15:47:19
1343
原创 电机驱动 TMC5160 详解
一、介绍TMC5160 是带步进/方向接口和串行通信接口(SPI)的高功率步进电机控制驱动芯片,将实现自动目标定位的灵活斜坡发生器和业界最先进的步进电机驱动器结合在一起。通过外置外部晶体管,实现高动态、高扭矩电机驱动。两相双极性步进电机的高电压通用控制器/驱动器。 stealthChop™控制电机安静运行。 外加 MOSFET 实现高达 20A 的电机线圈电流控制。TMC5160 和 TMC2160 可以 PIN 对 PIN 替换,TMC5160 自己带有梯形曲线加速功能,这是它与 TMC21.
2021-08-12 11:02:47
11466
原创 步进电机参数计算
目录一、同步带驱动二、必要参数1)步距角2)细分数3)同步轮齿数和齿间距三、计算1)同步带驱动2)丝杆驱动3)齿轮驱动一、同步带驱动同步带驱动的关键部分是 3 个:步进电机、同步轮、同步带。其原理是:同步轮通过螺丝固定在步进电机的输出轴上,然后把同步带放在同步轮的槽内,电机转动带动同步轮转动,同步轮在通过齿轮上的齿带动同步带一起转动。二、必要参数计算同步带的分辨率需要准备一些必要参数。1)步距角步进电机的旋转是靠脉动信号来驱动的,当步进
2021-04-20 11:03:19
11220
原创 Marlin固件 ---- G_Code 命令解析
命令 意义 参数 示例 备注 G0、G1 线性移动 [E<pos>]:E轴的相对或绝对坐标,描述进料丝的位置; [F<rate>]:在起点和终点之间移动的最大速率; [X<pos>][Y<pos>][Z<pos>]:X、Y、Z轴的相对或绝对坐标; G1 F1500 ; set the feedrate to 1500mm/m G1 X50 ...
2021-01-25 11:25:20
31186
5
原创 速度曲线规划 ---- 梯形速度曲线
在伺服系统以及控制系统的加减速动作中,为了让速度更加平滑,可以引入T型速度曲线规划(T-curve velocity profile),T曲线是工业界广泛采用的形式,它是一种时间最优的曲线。一般情况,曲线加速和减速的过程是对称的,设给定速度上限为vmaxv_{max}vmax。加速度上限为amaxa_{max}amax,被控对象从A点运动到B点,要求生成的轨迹在这些条件下时间最优1。...
2021-01-21 17:34:41
9163
1
原创 文件共享方式(Linux & Windows)
目的:在嵌入式开发板无法通过 SSH 访问时,可以通过 nfs 挂载目录到 Linux 主机,实现文件传输。一、首先要在 Linux 主机上安装 nfs 服务sudo apt-get install nfs-kernel-server二、创建共享文件夹,这里以 VMC 文件夹为例mkdir /home/lodge/VMC // 创建一个用于共享的文件夹chomd 777 /home/lodge/VMC // 设置该文件夹的权限使其让所有用户可读可写可运行
2020-05-20 15:06:16
1437
1
原创 【RK3399】Android 9.0 系统更改记录
目录一、去掉锁屏二、系统永不休眠三、更改系统语言一、去掉锁屏位置:frameworks/base/packages/SettingsProvider/res/values/defaults.xml<bool name="def_lockscreen_disabled">false</bool>将其中的 false 改成 tru...
2019-10-25 11:14:14
1947
2
原创 C 语言实现字节流到字符串的转换
1、字节流转换为十六进制字符串 void ByteToHexStr(const unsigned char* source, char* dest, int Length) { int i; unsigned char highByte, lowByte; for (i = 0; i < Length; i++) { ...
2019-09-20 16:24:16
2100
转载 Rockchip --- resource.img 解压与打包
所需工具resource_tool源码位于/u-boot/tools/resource_tool 目录下,编译 uboot 后即可生成对应的二进制文件。dtc源码位于 /kernel/scripts/dtc目录下,编译 kernel 后即可生成对应二进制文件。一、解压#解压 resource.img#sudo resource_tool --verbose --un...
2019-08-28 15:22:55
3596
原创 Linux 使用 adb 抓取 Android 日志
1、adb 安装sudo add-apt-repository ppa:nilarimogard/webupd8sudo apt-get updatesudo apt-get install android-tools-adbadb -v #有信息表示成功2、插入 USB,查看 adb 是否识别安卓设备adb devices 发现List of devic...
2019-08-27 12:13:18
1038
原创 全志 A83 芯片烧录方法(Linux + Windows)
一、Windows 下升级方式下载全志烧录工具 PhoenixSuit,安装后打开,选择一键刷机,选取想要烧录的固件;然后将设备和电脑连接,有 uboot 或 recovery 按键的话,按住按键后给设备上电,电脑会自动识别已连接,弹出选项框问是否格式化烧录,选择“是”,等待烧录完成即可。二、Linux 下升级方式需要用到工具:LiveSuit1、软件下载git clon...
2019-08-27 11:33:17
5006
原创 C++ 知识总结 --- 结构体和类的区别 (struct 和 class)
C++ 中的 struct 对 C语言中的 struct 进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,而是具有了更多的功能:能包含成员函数、能继承、能实现多态!但是它和class 最本质的一个区别就是默认的访问控制权限:struct 是 public 的,class 是 private 的。例如:structA{ chara;};struct...
2019-05-07 17:51:36
370
原创 Android随笔 - 006 多个 Activity 共享全局变量
直接看实现方法吧~首先新建一个 activity用来存放需要共享的全局变量的成员和方法,比如这里我新建一个MyDataActivity:package com.anwensoft.cardvr.activity;import android.app.Application;public class MyDataActivity extends Application { ...
2019-04-29 11:26:47
317
原创 Android随笔 - 005 APP界面跟随系统语言显示
一、app 名称跟随系统语言首先在res目录下新建文件夹和 values平级,名称如图所示,然后各在里面添加strings.xml文件,前面会显示国旗图标。英文 strings.xml内容:<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_na...
2019-04-26 14:53:24
474
原创 Android随笔 - 004 UI设计----常用控件
TextView<TextView android:id="@+id/first_txetview" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize="24...
2019-04-13 09:57:51
208
原创 Android随笔 - 003 使用 Intent 连接多个活动
Intent是Android各组件之间进行交互的一种重要方式,一般被用于启动活动、启动服务以及发送广播等场景。 显式Intent: Intent有多个构造函数重载,其中一个Intent(ContextpackageContext,Class cls)。第一个参数要求提供一个启动活动的上下文,第二个参数是指向想要启动的目标活动。创建好Intent后,用...
2019-04-09 19:31:27
1587
原创 Android随笔 - 002 在活动中使用 Menu
Android提供一种隐藏式的菜单栏,不占用显示空间又能实现菜单功能。 一、菜单显示 首先在 res目录下创建一个menu目录,在menu 目录下新建一个菜单文件 (menuresourcefile)。在该文件中添加菜单代码:<menu xmlns:android="http://schemas.android.com/apk/res/...
2019-04-09 16:59:02
142
原创 Android随笔 - 001 活动中的提示 (Tosat) 和打印信息 (Log)
目录一、Toast二、Log一、Toast Toast是 Android 系统提供的一种很好的提醒方式,在程序中可以使用它将一些简单的信息反馈给用户,这些信息会在一段时间后自动消失,并不会占用屏幕空间。 使用:首先要定义一个弹出Toast的触发点,例如设置一个按钮,在点击按钮的时候弹出一个Toast。public class MainActivi...
2019-04-09 15:02:38
312
原创 Mac 下使用 Sublime Text 编译 java
一、创建 java 程序并保存为 java 文件public class Hello_World{ public Hello_World(String name){ System.out.println("The first Java:"+ name); } public static void test(String[] args){ ...
2019-01-25 14:51:50
1516
原创 Linux Qt 下 qwt 控件的安装与使用
一、首先下载 qwt 软件包,我用的是 qwt-6.1.3 下载地址:https://download.csdn.net/download/hsl416604093/10818165 qwt 官方主页:http://qwt.sourceforge.net/二、解压# tar -jxvf qwt-6.1.3.tar.bz2三、进入 qwt 目录,执行命令 qmake...
2018-11-30 00:48:45
869
原创 Linux学习问题记录
目录一、设置环境变量二、修改环境变量后系统无法登录三、编译出现错误 error: unrecognized command line option "-std=c++11"一、设置环境变量1、直接使用 export 命令:例:添加路径:/opt/hsl/tools 然后可以用 export 命令查看是否设置成功2、修改 profile 文件 # v...
2018-11-08 16:49:03
394
原创 C++学习笔记 (六) ---- 多态与虚函数
①、多态的概念先上一个示例#include <iostream>using namespace std;//基类Peopleclass People{public: People(char *name, int age); void display();protected: char *m_name; int m_age;};P...
2018-11-01 19:09:04
177
原创 C++学习笔记 (五) ---- 继承与派生
①、继承可以理解为一个类从另一个类获取成员变量和成员函数的过程,被继承的类称为基类,继承的类称为派生类。派生类除了拥有基类成员,还可以自定义新成员。#include<iostream>using namespace std;//基类 Pelpleclass People{ public: void setname(char *name); void...
2018-10-31 17:35:54
225
原创 C++学习笔记 (四) ---- 引用
引用算是对 C语言的又一个扩充,可以看作是数据的一个别名,定义方式类似于指针,只是用 & 取代了 * 。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始...
2018-10-31 16:24:18
167
原创 C++学习笔记 (三) ---- string 类
引言:在 C++ 中,大大加强了对字符串的支持和处理,除了兼容 C 语言的字符串,还内置了完全可以替换 C语言中的字符数组和字符串指针的 string 类。使用 string 类需要包含头文件 <string>。简单例子:#include <iostream>#include <string>using namespace std;int ...
2018-10-31 14:28:56
158
原创 C++学习笔记 (二) ---- 类和对象
①、类和对象类的定义,如下:class Student{ public: //成员变量 char *name; int age; float score; //成员函数 void say(){ cout<<name<<"的年龄是"<<age<<",成绩是"<&
2018-10-31 11:37:04
363
原创 C++学习笔记 (一) ---- 初步认识
①、C++面向对象,是对C语言的升级;结构体是变量的合集,而类是变量与函数的合集;结构体定义的变量还是称作变量,类定义的变量称作为对象; 面向对象编程在代码执行效率上绝对没有任何优势,它的主要目的是方便程序员组织和管理代码,快速梳理编程思路,带来编程思想上的革新。 ②、命名空间:namespace,可以解决在同一项目中,不同程序员定义了相同变量而产生变量重复定义的...
2018-10-29 18:11:43
184
原创 C语言 --- 知识总结
一、write、read函数在一段程序中看到,write(1,buff,len)这个函数中的第一个参数是常数1,read(0,b,1)这个函数中的第一个参数是常数0。不知这两个参数到底指向什么输入和输出??0:标准输入 STDIN1:标准输出 STDOUT2:标准错误 STDERR...
2018-10-20 11:53:36
322
原创 字节对齐原则
1、结构(struct)(或联合(union))中的第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始(比如int型变量在32位编译环境下为4字节,则要从4的整数倍地址开始存储; 2、如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储.(如:st...
2018-10-19 11:09:59
1124
原创 MobaXterm配置 --- windows终端管理工具
参考:http://blog.csdn.net/LANWENBING/article/details/36222311源程序下载:https://download.csdn.net/download/hsl416604093/10731374 能够直接通过MobaXterm.ini文件配置。该文件和MobaXterm软件放在同一目录下。最终效果: 配置代码如下:...
2018-10-19 10:52:11
11484
原创 alsa学习相关 --- 找不到文件alsa/asoundlib.h
一、在编译alsa应用程序时,包含了alsa/asoundlib.h,编译时出错 (文件找不到) 解决:1、首先安装alsa-lib库,并且需要编译相应的arm版本,然后安装到指定文件夹alsa-lib库下载地址:http://www.alsa-project.org/main/index.php/Main_Page2、对下载的alsa-lib文件进行解压:tar -jxvf...
2018-10-11 19:09:44
8543
1
转载 Linux 运行.exe程序
安装WineHQ说明:Wine和WIneHQ没什么区别,新版和旧版的问题安装:sudo dpkg --add-architecture i386 wget -nc https://dl.winehq.org/wine-builds/Release.keysudo apt-key add Release.keysudo apt-add-repository https...
2018-05-07 17:13:33
30086
转载 温度转化
温度转换计算公式转换 到 公式 9/5 = 1.8 9/4 = 2.25 10/8 = 1.25 华氏温度 摄氏温度 jk ℃ = (οF - 32) / 1.8 华氏温度 绝对温度 K = (οF + 459.67) / 1.8 华氏温度 兰氏度Rankine οRa = οF +...
2018-05-07 12:47:45
1127
PhoenixSuit_CN.zip
2019-08-27
Windows全能终端神器——MobaXterm
2018-10-19
gslx680触摸资料和参考程序
2018-05-07
Linux man命令汉化
2018-03-10
Exynos 4412数据手册
2018-03-10
Linux shell脚本运行
2021-08-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人