自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (2)
  • 收藏
  • 关注

原创 FOC入门教程

深入浅出FOC(Field Oriented Control)前言:为什么要学习FOC?1.电机控制是自动化控制领域重要一环。2.目前直流无刷电机应用越来越广泛,如无人机、机械臂、云台、仿生机器人等等。3.电机控制工程师薪水较高。需要什么基础?1.C语言,指针,结构体,编程规范。2.STM32外设使用。3.原理图阅读。4.芯片手册阅读。5.数序坐标系知识为什么要出本教程?1.直流无刷电机应用越来越广泛,网上资料比较散落,因此想要出一篇系统性的教程,从头到尾,深入浅出,帮助初学者快速

2021-04-10 10:01:53 93099 167

原创 Vscode创建全局代码片段

"函数注释": { "prefix": "qqqqFunction", "body": [ "/*************************************************************" "** Function name: $1" "** Descriptions: $1" "** Input parameters: None" "** Output parameters: N...

2021-01-20 18:49:33 1027 2

原创 FOC实现过程中主要公式整理

前言:直流无刷电机的好处多多,ST也有专门的库,但是还是想深入研究以下,做到自己实现,在此记录下FOC实现需要注意的知识点,以备以后查看。直流无刷原理资料较多,这里不再赘述,文章侧重于坐标变换,SVPWM的生成,扇区判断等,重点在于资料整合。一:FOC控制框图FOC结构框图如上图所示,由以下几部分组成Clarke变换 Park变换 Park反变换 SVPWM生成 速度位置PID 电流PID二:Clarke变换注意:此处对ia ib ic做了*2/3处理因为

2020-12-14 18:36:42 5798 1

原创 记录ST资料下载网站

https://www.stmcu.org.cn/document/list/index/category-27

2020-11-30 14:46:53 643

原创 如何在windows和虚拟机中实现复制粘贴

执行以下几条命令即可sudo apt-get install open-vm-toolssudo apt-get install open-vm-tools-desktop

2020-11-06 15:56:03 5027 4

原创 linux下开发IIC

引入:通过开发LED,按键,中断等驱动,能够发现linux下开发无非是以下几点:找到结构体 初始化结构体 向内核注册 不用的时候向内核注销IIC分为控制器部分和设备驱动控制器部分是完成IIC控制器的初始化,包括使用的引脚,时钟,速度,读写功能。设备驱动包括所使用的设备寄存器的配置,和寄存器的读取,即如何向所使用的设备写入和获取数据。问题一:Linux下IIC总线驱动(I...

2020-03-15 16:04:03 505

原创 Linux下 INPUT子系统

知识点一:input_dev结构体1.申请input_dev结构体变量在编写 input 设备驱动的时候我们需要先申请一个 input_dev 结构体变量,使用input_allocate_device 函数来申请一个 input_dev函数原型:struct input_dev *input_allocate_device(void)2.释放input_dev使用 in...

2020-03-08 19:39:21 240

原创 QT程序在ARM板子上运行中文显示乱码

1.下载字符集例如:DroidSansFallback.ttf2.将下载好的字符集拷贝到/etc/fonts/目录下3.在QT的main.cpp中加入代码需要包含头文件:#include <QFontDatabase> int id = QFontDatabase::addApplicationFont("/etc/fonts/DroidSansFallba...

2020-03-08 12:00:47 1227

原创 C语言存储格式

引入:在C程序中我们定义变量,定义函数,写的逻辑语句,用malloc()函数申请的neic内存,那么这些东西在内存中都是怎么存放的呢?问题一:一个程序在内存中是怎么存放的我们将一个程序engx编多个执行文件,各个段的数据类型.text: 代码段.data: 已初始化的全局变量,已初始化的静态变量。数组、结构体也是(它们也属于变量)。.roda...

2020-02-29 15:29:11 894

原创 C程序编译过程剖析

问题一:C程序如何生成可执行程序预处理 -E 编译 -S 汇编 -c 链接 -o问题二:预处理要处理哪些东西宏定义:#define 文件包含 #inchude 条件编译 #ifdef ... #endif预处理命令:gcc -E hello.c小技巧 :可以使用 -D选项例如:gcc -E -DDebug hello.c类似于在程序中#define Debugma...

2020-02-28 16:46:50 239 1

原创 linux驱动获取dts属性

引入:设备树描述了设备的详细信息,这些信息包括数字类型的、字符串类型的、数组类型的,我们在编写驱动的时候需要获取到这些信息。Linux 内核给我们提供了一系列的函数来获取设备树中的节点或者属性信息,这一系列的函数都有一个统一的前缀“of_”,所以在很多资料里面也被叫做 OF 函数。这些 OF 函数原型都定义在 include/linux/of.h 文件中。一、查找结点函数:1.of...

2020-02-11 19:01:04 3758

原创 设备树讲解

前言:设备树很简单,只需要学习语法。一、DTCDTSDTB的关系源码 :test.dts可执行文件: test.dtb编译工具:DTC编译所有dts文件:make dtbs编译指定的dts文件:maketest.dtb二、DTS 基本语法头文件:可以将芯片共有的信息提取出来作为一个通用的.dtsi文件可以将芯片共有的信息提取出来作为一个通用的....

2020-02-11 18:20:56 1049

原创 imx6ul挂载nfs文件系统

前提:实验开发板:imx6ul 100ask实验前提:ubuntu已经安装tftp和nfs工具,并创建了tftp目录和nfs目录 已经配置好交叉编译工具 已经下载源码压缩包并解压出文件夹100ask_imx6ul-sdk一、编译并烧写bootloader进入Uboot源码目录:cdUboot-2017.03 清除编译文件:make distclean 编译配置文件:m...

2020-02-07 16:07:26 1147 2

原创 VSCode保存文件后自动删除多余空格的方法

在设置中搜索files.trimTrailingWhitespace并勾选

2019-12-18 09:53:19 1925

原创 CSDN比较好用的几款插件

1.Chinese (Simplified) LanguagePack for Visual Studio Code中文简体语言包2.vscode-icons图标控件包能在工作区显示漂亮的图标3.Spelling Checker for Visual Studio Code代码拼写检查工具4.Spelling Checker for Visual Studio Code...

2019-12-18 09:48:00 2521

原创 VSCode隐藏项目中不必要的文件

1.在项目中有些文件我们一般不去修改但是这些文件又会扰乱我们视线,因此就需要适当的将这些文件隐藏掉步骤:1.在项目根目录下新建.vscode文件夹2.在.vscode文件夹下新建settings.json文件3.在文件中添加以下代码{ "search.exclude":{ //不需要使用搜索的文件},"files.exclude":...

2019-12-17 16:20:58 5096

原创 I.MX6UL RTC实时时钟简介

1.I.MX6UL RTC简介I.MX6Ul 实时时钟为SNVS,SNVS 直译过来就是安全的非易性存储,SNVS 里面主要是一些低功耗的外设,包括一个安全的实时计数器(RTC)、一个单调计数器(monotonic counter)和一些通用的寄存器SNVS分为SNVS_HP和 SNVS_LP也就是高功耗域(SNVS_HP)和低功耗域(SNVS_LP)78/5000下图说明了SN...

2019-12-04 20:35:28 809

原创 i.MX6U SPI浅析

1.SPI简介SPI 全称是 SerialPerripheral Interface,也就是串行外围设备接口。SPI 是 Motorola 公司推出的一种同步串行接口技术,是一种高速、全双工的同步通信总线,SPI 时钟频率相比 I2C 要高很多,最高可以工作在上百 MHz。SPI 以主从方式工作,通常是有一个主设备和一个或多个从设备,一般 SPI 需要4 根线,但是也可以使用三根线(单向传输...

2019-12-04 12:24:59 1256

原创 I.MX6ULL IIC浅析

1.IIC简介IIC有两条数据线,SCL和SDA。 空闲时间SCL和SDA均处于高电平。 IIC标准模式下速度可以达到100KB/S,快模式下速度可以达到400KB/S。 IIC支持多从机,通过从机地址来区分。2.IIC必备知识1.起始位即IIC通讯协议开始标志SCL为高电平时,SDA出现下降沿。2.停止位即IIC通讯结束SCL为高电平期间SDA出现上...

2019-12-03 17:45:18 554

原创 如何使用STVP_CmdLine.exe

一.准备工作1.安装STVP软件STVP_CmdLine 包含在 STVP 安装包中,STVP 安装包下载地址:http://www.st.com/content/st_com/en/products/development-tools/software-developmenttools/stm8-software-development-tools/stm8-programmers/...

2019-11-27 20:53:56 1710

原创 I.MX6UL 中断控制器GIC浅析

GIC架构简介GIC是中断管理控制器,类似STM32的NVICGIC负责收集中断源并发送给CPU中断源--->GIC--->CPU问题一:中断源有哪些?中断源分为三种:SPI:共享中断(如串口中断,定时器中断等)PPI:私有中断SGI:软件中断为了区分这些中断源引入中断IDI.MX6U 的总共使用了 128 +32个中断 IDID0~I...

2019-11-21 20:34:00 1291

原创 I.MX6UL 中断浅析一

要了解中断首先要明白几个点2.中断向量表3.中断管理4.中断服务函数中断向量表中断向量表是一系列中断服务程序入口地址组成的表。主要存放中断服务函数的入口地址。比如一般 ARM 处理器都是从地址 0X00000000 开始执行指令的,那么中断向量表就是从 0X00000000 开始存放的。如果将程序下载到其他位置还要进行中断向量表偏移。比如我们将程序下载到0X878...

2019-11-16 17:48:08 928

原创 I.MX6U 串口UART浅析

引入:在单片机开发过程中我们可以通过仿真来调试程序,但是I.MX6UL我们一般不使用IDE来开发也就没有所谓的仿真调试工具。所以我们一般使用串口输出信息来达到调试的目的。1.I.MX6U UART 简介•兼容高速TIA / EIA-232-F,高达Mbit / s•串行IR接口低速,兼容IrDA(最高115.2 Kbit / s)•9位或多点模式(RS-485)支持(自动从站地址检测)...

2019-11-07 22:27:12 914

原创 关于KEIL如何生成bin文件解密

fromelf --bin --output .\stm32f429dfu\stm32f429dfu.bin .\stm32f429dfu\stm32f429dfu.axffromelf空格--bin空格--output空格.\stm32f429dfu\stm32f429dfu.bin空格.\stm32f429dfu\stm32f429dfu.axf.\stm32f429dfu:...

2019-11-07 17:05:12 1259

原创 I.MX6U GPT定时器浅析

引入:I.MX6U除了EPIT定时器还有GPT定时器。GPT定时器简介:1.32位定时器2.向上计数3.12位分频值4.三个输出比较通道,可设置为输出模式5.两个输入捕获通道,可以设置触发方式6.可以产生比较中断,捕获中断,和溢出中断。7.计数器可以运行在restart和free-run模式问题一:时钟源可以选择哪几种?1.ipg_clk_24...

2019-11-04 23:02:45 742

原创 I.MX6U EPIT定时器浅析

引入:定时器是常用的外设,I.MX6U 提供了多种硬件定时器,有些定时器功能非常强大。而EPIT定时器比较简单,因此先挑软柿子捏。EPIT简介1.是一个32位定时器2.12位分频3.3种时钟源可以选择4.递减计数问题1:可选择的时钟源是哪几个?1.高频参考时钟ipg_clk_highfreq2.低频参考时钟ipg_clk_32k3.外围时钟ipg...

2019-11-04 21:03:39 446

原创 I.MX6U 启动方式浅析

引入:前段时间浅析了一些I.MX6U的寄存器,那么接下来肯定是下载实验,但是下载前首先要知道I.MX6U是如何启动的。问题一:I.MX6U 有哪几种启动方式?引导ROM支持以下引导设备:•NOR闪存•NAND闪存•OneNAND闪存•SD / MMC•串行(SPI)NOR闪存和EEPROM•QuadSPI(QSPI)闪存问题二:如何选择启动方式?BOOT 的处理过程是...

2019-11-02 13:24:13 898

原创 linux 设备树 浅析

引题:linux以前的版本如果在linux下新增一款开发板的支持,需要在内核的arch/arm/mach-xxx 和 arch/arm/plat-xxx 文件夹下增加.c和.h文件。例如你自己设计了一款开发板,你就需要新增.c和.h文件来定义一些信息,但这些信息只针对你自己这款开发板。因此当linux应用的越来越广泛,linux产品越来越多,这些.c和.h文件也就会越来越多,使得内核越来越庞大,因...

2019-10-29 22:35:21 425

原创 I.MXUL使用Linxu点亮一个LED

明确:1.LED属于字符设备驱动,2.关于字符设备的介绍在上篇文章中有介绍,3.关于GPIO的操作在之前文章中也有介绍。字符设备驱动介绍:https://blog.csdn.net/qq_35947329/article/details/102709469I.MX6UL IO分析:https://blog.csdn.net/qq_35947329/article/details/1025...

2019-10-25 21:28:13 278

原创 VScode如何显示隐藏的空格和tab 并修改tab对应4个空格

设置这两个地方即可如果想要设置tab为4个空格则点击箭头指示,(箭头处可能显示其他内容)点击在上方会出现以下内容,电机Indent Using Spaces接下来 选择tab对应空格的数量即可...

2019-10-24 09:53:41 3422

原创 linux字符设备驱动分析

1.linux有哪些驱动?字符设备驱动块设备驱动网络设备驱动2.字符设备是什么?字符设备是一种按字节来访问的设备,常见的有LED驱动,按键驱动,串口,IIC,SPI,LCD。字符设备驱动通常要实现以下功能:打开驱动,关闭驱动,读写。例如:打开LED驱动(LED初始化)关闭LED驱动(LED反初始化)读(读取LED状态)写(设置LED状态)3.块设备是什么...

2019-10-23 21:10:46 328

原创 i.MX6ul时钟分析

引入I.MX6U 的系统主频为 528MHz,但是默认情况下内部 bootrom 会将 I.MX6U 的主频设置为 396MHz因此需要时钟配置截图:时钟管理系统图这两幅图主要介绍CCM的作用。CCM:时钟控制模块可以产生7路PLL,其中两路每路还可以产生4路PFDPFD是具有没有模拟组件或反馈回路。 频率开关时间比PLL快得•PLL1也称为ARM PLL•PLL2...

2019-10-19 11:20:51 791

原创 i.MX6UL IO分析

I.MX6U 的 GPIO 一共有 5 组:GPIO1、GPIO2、GPIO3、GPIO4 和 GPIO5,GPIO1 有 32 个 IO,GPIO2 有 22 个 IO,GPIO3 有 29 个 IO、GPIO4 有 29 个 IO,GPIO5有 12 个 IO,这样一共有 124 个 GPIO重要寄存器:以GPIO1_IO00举例IOMUXC_SW_MUX...

2019-10-16 21:33:17 1519

原创 Makefile简单讲解一

Makefilea.c代码:#include<stdio.h>int main(void){ func_b(); return 0;}b.c代码:#include<stdio.h>void func_b(){ printf("This is B.c\n");}为什么引入Makefile?gcc -...

2019-09-10 23:08:16 202

原创 树莓派共享文件

今天拿到树莓派3 突发奇想能不能在树莓派上做ARM裸板开发,开发之前先创建共享文件。发表此文章仅作为开发笔记方便查阅linux与windows创建共享文件linux下创建文件 安装smb sudo apt-get install samba samba-common-bin配置smb sudo nano /etc/samba/smb.conf在文件末尾加上如...

2019-09-09 23:03:40 1090

原创 S3C2440系统时钟讲解

FCLK ->CPUHCLK->AHB总线PCLK ->APB总线两个锁相环(PLL)MPLL->FCLK HCLK PCLKUPLL ->USB(48M)时钟来源外部晶振->PLL->FCLK->HCLK->PCLK必须先配置MPLLCON MPLL才会输出系统时钟在软件重新配置PLLCON 寄存器之前系统...

2019-09-05 00:25:48 404

原创 关于STM32 hal库计满溢出问题

今天用到了hal库的delay函数是这样的原型__weak void HAL_Delay(__IO uint32_t Delay){  uint32_t tickstart = 0;  tickstart = HAL_GetTick();  while((HAL_GetTick() - tickstart) &lt; Delay)  {  }}__weak uint32_...

2018-11-19 11:50:42 3232

原创 几个常用的字符串操作函数

strtod(将字符串转换成浮点数)long int strtol(const char *nptr,char **endptr,int base);参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如'0x'前置字符则会使用16进制做转换、遇到'0'前置字...

2018-11-08 17:27:27 247

原创 STM32F407 SPI2 寄存器操作

第一次写博客有点紧张哈哈哈  所以话不多说先上代码压压惊//以下是SPI模块的初始化代码,配置成主机模式                           //SPI口初始化//这里针是对SPI2的初始化void SPI2_Init(void){         u16 tempreg=0;    RCC-&gt;AHB1ENR|=1&lt;&lt;1;        //使能P...

2018-11-01 19:32:43 5430 1

FOC学习笔记.pdf

个人整理的学习笔记帮助有需要的老哥

2021-04-10

IMX6ULRM.pdf

文档为I.MX6UL英文数据手册,对I.MX6UL开发很有帮助

2019-11-07

空空如也

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

TA关注的人

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