自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

EchoHeim

学习笔记记录、文学作品摘要、个人生活感悟

  • 博客(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 1259

原创 树莓派 40pin IO引脚测试

测试过程

2022-01-22 12:28:37 943

原创 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 1751

原创 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 1024

原创 STM32MP157学习笔记(二) ---- Linux系统启动

一、启动流程STM32MP1 是面向 Linux 领域的,其启动 Linux 内核的流程如下:STM32MP1 启动 linux 内核一共分为 5 个步骤,我们依次来看一下这五个步骤的内容:①、 ROM 代码前面说了很多次了,这是 ST 自己编写的代码,在 STM32MP1 出厂的时候就已经烧写进去的,不能被修改的。 ROM 代码因为保存在 STM32 内部 ROM 里面,因此也就直接简单明了的叫做“ROM 代码”了。它是处理器上电以后首先执行的程序, ROM 代码的主要工作就是读取

2021-08-24 11:23:03 594

原创 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 7404 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 1237

原创 电机驱动 TMC5160 详解

一、介绍TMC5160 是带步进/方向接口和串行通信接口(SPI)的高功率步进电机控制驱动芯片,将实现自动目标定位的灵活斜坡发生器和业界最先进的步进电机驱动器结合在一起。通过外置外部晶体管,实现高动态、高扭矩电机驱动。两相双极性步进电机的高电压通用控制器/驱动器。 stealthChop™控制电机安静运行。 外加 MOSFET 实现高达 20A 的电机线圈电流控制。TMC5160 和 TMC2160 可以 PIN 对 PIN 替换,TMC5160 自己带有梯形曲线加速功能,这是它与 TMC21.

2021-08-12 11:02:47 10895

原创 步进电机参数计算

目录一、同步带驱动二、必要参数1)步距角2)细分数3)同步轮齿数和齿间距三、计算1)同步带驱动2)丝杆驱动3)齿轮驱动一、同步带驱动同步带驱动的关键部分是 3 个:步进电机、同步轮、同步带。其原理是:同步轮通过螺丝固定在步进电机的输出轴上,然后把同步带放在同步轮的槽内,电机转动带动同步轮转动,同步轮在通过齿轮上的齿带动同步带一起转动。二、必要参数计算同步带的分辨率需要准备一些必要参数。1)步距角步进电机的旋转是靠脉动信号来驱动的,当步进

2021-04-20 11:03:19 10245

原创 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 30886 5

原创 速度曲线规划 ---- 梯形速度曲线

在伺服系统以及控制系统的加减速动作中,为了让速度更加平滑,可以引入T型速度曲线规划(T-curve velocity profile),T曲线是工业界广泛采用的形式,它是一种时间最优的曲线。一般情况,曲线加速和减速的过程是对称的,设给定速度上限为vmaxv_{max}vmax​。加速度上限为amaxa_{max}amax​,被控对象从A点运动到B点,要求生成的轨迹在这些条件下时间最优1。...

2021-01-21 17:34:41 8700 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 1390 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 1884 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 2003

转载 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 3407

原创 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 995

原创 全志 A83 芯片烧录方法(Linux + Windows)

一、Windows 下升级方式下载全志烧录工具 PhoenixSuit,安装后打开,选择一键刷机,选取想要烧录的固件;然后将设备和电脑连接,有 uboot 或 recovery 按键的话,按住按键后给设备上电,电脑会自动识别已连接,弹出选项框问是否格式化烧录,选择“是”,等待烧录完成即可。二、Linux 下升级方式需要用到工具:LiveSuit1、软件下载git clon...

2019-08-27 11:33:17 4759

原创 C++ 知识总结 --- 结构体和类的区别 (struct 和 class)

C++ 中的 struct 对 C语言中的 struct 进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,而是具有了更多的功能:能包含成员函数、能继承、能实现多态!但是它和class 最本质的一个区别就是默认的访问控制权限:struct 是 public 的,class 是 private 的。例如:structA{ chara;};struct...

2019-05-07 17:51:36 352

原创 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 300

原创 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 458

原创 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 194

原创 Android随笔 - 003 使用 Intent 连接多个活动

Intent是Android各组件之间进行交互的一种重要方式,一般被用于启动活动、启动服务以及发送广播等场景。 显式Intent: Intent有多个构造函数重载,其中一个Intent(ContextpackageContext,Class cls)。第一个参数要求提供一个启动活动的上下文,第二个参数是指向想要启动的目标活动。创建好Intent后,用...

2019-04-09 19:31:27 1580

原创 Android随笔 - 002 在活动中使用 Menu

Android提供一种隐藏式的菜单栏,不占用显示空间又能实现菜单功能。 一、菜单显示 首先在 res目录下创建一个menu目录,在menu 目录下新建一个菜单文件 (menuresourcefile)。在该文件中添加菜单代码:<menu xmlns:android="http://schemas.android.com/apk/res/...

2019-04-09 16:59:02 129

原创 Android随笔 - 001 活动中的提示 (Tosat) 和打印信息 (Log)

目录一、Toast二、Log一、Toast Toast是 Android 系统提供的一种很好的提醒方式,在程序中可以使用它将一些简单的信息反馈给用户,这些信息会在一段时间后自动消失,并不会占用屏幕空间。 使用:首先要定义一个弹出Toast的触发点,例如设置一个按钮,在点击按钮的时候弹出一个Toast。public class MainActivi...

2019-04-09 15:02:38 294

原创 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 1504

原创 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 837

原创 Linux学习问题记录

目录一、设置环境变量二、修改环境变量后系统无法登录三、编译出现错误  error: unrecognized command line option "-std=c++11"一、设置环境变量1、直接使用 export 命令:例:添加路径:/opt/hsl/tools 然后可以用 export 命令查看是否设置成功2、修改 profile 文件  # v...

2018-11-08 16:49:03 304

原创 C++学习笔记 (六) ---- 多态与虚函数

①、多态的概念先上一个示例#include &lt;iostream&gt;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 167

原创 C++学习笔记 (五) ---- 继承与派生

①、继承可以理解为一个类从另一个类获取成员变量和成员函数的过程,被继承的类称为基类,继承的类称为派生类。派生类除了拥有基类成员,还可以自定义新成员。#include&lt;iostream&gt;using namespace std;//基类 Pelpleclass People{ public: void setname(char *name); void...

2018-10-31 17:35:54 214

原创 C++学习笔记 (四) ---- 引用

引用算是对 C语言的又一个扩充,可以看作是数据的一个别名,定义方式类似于指针,只是用 &amp; 取代了 * 。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始...

2018-10-31 16:24:18 157

原创 C++学习笔记 (三) ---- string 类

引言:在 C++ 中,大大加强了对字符串的支持和处理,除了兼容 C 语言的字符串,还内置了完全可以替换 C语言中的字符数组和字符串指针的 string 类。使用 string 类需要包含头文件 &lt;string&gt;。简单例子:#include &lt;iostream&gt;#include &lt;string&gt;using namespace std;int ...

2018-10-31 14:28:56 144

原创 C++学习笔记 (二) ---- 类和对象

①、类和对象类的定义,如下:class Student{ public: //成员变量 char *name; int age; float score; //成员函数 void say(){ cout&lt;&lt;name&lt;&lt;"的年龄是"&lt;&lt;age&lt;&lt;",成绩是"&lt;&amp

2018-10-31 11:37:04 347

原创 C++学习笔记 (一) ---- 初步认识

①、C++面向对象,是对C语言的升级;结构体是变量的合集,而类是变量与函数的合集;结构体定义的变量还是称作变量,类定义的变量称作为对象;​       面向对象编程在代码执行效率上绝对没有任何优势,它的主要目的是方便程序员组织和管理代码,快速梳理编程思路,带来编程思想上的革新。 ②、命名空间:namespace,可以解决在同一项目中,不同程序员定义了相同变量而产生变量重复定义的...

2018-10-29 18:11:43 176

原创 C语言 --- 知识总结

一、write、read函数在一段程序中看到,write(1,buff,len)这个函数中的第一个参数是常数1,read(0,b,1)这个函数中的第一个参数是常数0。不知这两个参数到底指向什么输入和输出??0:标准输入 STDIN1:标准输出 STDOUT2:标准错误 STDERR...

2018-10-20 11:53:36 305

原创 字节对齐原则

1、结构(struct)(或联合(union))中的第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始(比如int型变量在32位编译环境下为4字节,则要从4的整数倍地址开始存储; 2、如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储.(如:st...

2018-10-19 11:09:59 1099

原创 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 11406

原创 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 8358 1

原创 常用十六进制颜色对照表

2018-06-22 16:16:43 21873

转载 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 30031

转载 温度转化

 温度转换计算公式转换 到 公式 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 1096

PhoenixSuit_CN.zip

windows 下烧录工具,全志系列芯片。 PhoenixSuit一键刷机工具,PhoenixSuit也叫全志固件升级工具,支持所有全志平台的固件烧写升级,支持烧写单个分区,支持各种平板电脑的刷机,有需要的赶快下载吧!

2019-08-27

Linux下必要库文件及插件包

归档文件包内包含: Qt里超级好用的画图工具包 qwt; 功能强大的音频库软件包 alsa; 最好用、最快速的傅立叶算法库文件包 FFT;

2018-11-30

Windows全能终端神器——MobaXterm

Windows全能终端神器——MobaXterm 主要功能: 支持各种连接SSH,X11,RDP,VNC,FTP,MOSH 支持Unix命令(bash,ls,cat,sed,grep,awk,rsync,…) 连接SSH终端后支持SFTP传输文件 各种丰富的插件(git/dig/aria2…) 可运行Windows或软件

2018-10-19

GT9xx 系列触摸资料

GT9xx 系列触摸资料 支持多种芯片型号GT9XX系列 内附驱动移植说明书,详细描述了GT9XX系列 ic的驱动移植方法

2018-05-07

gslx680触摸资料和参考程序

gslx680触摸资料和参考程序 gslX680特点 o 极强的抗 RF, LCD 和电源干扰能力 o 完美的舒适柔和触感 o 自动调屏和自动校准  通道数量 o 多达 16x10 o 同时探测多达 10 个触摸点 o 扫描顺序可编程

2018-05-07

Linux man命令汉化

Linux 提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找, 只要 man 一下即可。 Linux 的 man 手册共有以下几个章节: 代号 代表內容 1 使用者在 shell 中可以操作的指令或可执行档 2 系統核心可呼叫的函数与工具等 3 一些常用的函数(function)与函数库(library),大部分是 C 的函数库(libc) 4 装置档案的说明,通常在/dev 下的档案 5 设定档或者是某些档案的格式 6 游戏(games) 7 惯例与协定等,例如 Linux 档案系统、网络协定、 ASCII code 等等的說明 8 系統管理員可用的管理指令 9 跟 kernel 有关的文件 例: man 5 data n 新文档, 可能要移到更适合的领域。 o 老文档, 可能会在一段期限内保留。 l 本地文档, 与本特定系统有关的。 例: 输入 man ls,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)” 表示该手册位于第一节章; 输入“man ifconfig”它会在最左上角显示“IFCONFIG(8)”。 也可以这样输入命令:“man [章节号] 手册名称”。 注: man 是按照手册的章节号的顺序进行搜索的; 例: man sleep 只会显示 sleep 命令的手册; 如果想查看库函数 sleep,就要输入:man 3 sleep

2018-03-10

Exynos 4412数据手册

三星 exynos 4412 芯片数据手册 All brand names, trademarks and registered trademarks belong to their respective owners.  Exynos, Exynos4210, FlexOneNAND, and OneNAND are trademarks of Samsung Electronics.  ARM, Jazelle, TrustZone, and Thumb are registered trademarks of ARM Limited. Cortex, ETM, ETB, Coresight, ISA, and Neon are trademarks of ARM Limited.  Java is a trademark of Sun Microsystems, Inc.  SD is a registered trademark of Toshiba Corporation.  MMC and eMMC are trademarks of MultiMediaCard Association.  JTAG is a registered trademark of JTAG Technologies, Inc.  Synopsys is a registered trademark of Synopsys, Inc.  I2S is a trademark of Phillips Electronics.  I2C is a trademark of Phillips Semiconductor Corp.  MIPI and Slimbus are registered trademarks of the Mobile Industry Processor Interface (MIPI) Alliance. All other trademarks used in this publication are the property of their respective owners.

2018-03-10

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除