自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

炉子热

远方!我的梦!

  • 博客(32)
  • 资源 (4)
  • 收藏
  • 关注

原创 arm 汇编积累

MOV{条件}{S} 目的寄存器,源操作数。

2024-02-05 00:43:37 2659 1

原创 cortexM 栈空间的增长方式

修改完sp 指针位置,然后将sp 保存在 r7 寄存器,跳出函数时,只需要将r7 赋值给sp ,然后sp 减少416 字节,自然而然就回到保存r4,r5,r7,lr 的地方了。弹栈就可以回到上一层函数了。很多时候,我们查看文档。文档上告诉我们cortex-M 系列是栈向下生长。但是向下生长是什么样的感觉呢?进入add 函数后,会先压栈 再处理sp 指针。到这里就理解栈增长方向了,并且压栈、压栈空间、弹栈、弹栈空间等概念了。

2024-02-04 08:48:07 383

原创 cortex-M 进程里面的局部变量处理方法

我估计好多朋友都好奇 A 函数调用B 函数的时候,若是在A 函数中还有局部变量,那压栈和弹栈怎么操作呢?这一篇文章我们就来说一说。而栈帧需要在已有的SP 基础上再申请对应的栈帧空间,用来保存局部变量。所以调用其他函数时,压栈不用担心之前函数的局部变量被覆盖。函数内的局部变量可以用寄存器来表示,则直接将寄存器压栈就好了。汇编中已经流出来了400个字节空间。sub sp, sp, #416 .c语言里面定义了100个int 字节,空间是 400个字节。函数内的局部变量数量。

2024-02-04 00:32:27 386

原创 cortexM c语言和汇编嵌套编程

cortex c语言与汇编语言混合开发

2024-02-02 21:26:39 1119

原创 STM32CubeIDE 使用标准库来编写程序

2、

2024-02-02 00:01:13 637

原创 qt中使用mysql 数据库

虽然版本是这个,但是工作目录确是: 就是安装MYSQL 数据库,在此不再赘述了,很多博主已经上传了。就是拷贝QT 对应mysql 的版本驱动到 QT 的编译器文件中。驱动下载页面: https://github.com/thecodemonkey86/qt_mysql_driver/releases?page=1下载之后解压。 第一个拷贝,位数要对应,目录要对应。第二个拷贝,位数要对应,目录要对应这样驱动算是安装完成。可以参考网络上关于QT 访问mysql 的代码编写。再此也不在赘述,因为

2024-01-30 18:14:14 586

原创 QT中字符转换

有些时候,就得需要疏通疏通。

2023-03-23 10:58:24 783

原创 QT 中信号与槽connect 放在哪个位置

在使用QT 的时候,就一直犯嘀咕。两个对象之间使用信号与槽链接的时候,应该把connect 放在哪个位置呢?? 对象 A 、 对象 B两个对象,把connect 放在A 对象里还是放在B 对象里呢。 在一次项目里面我突然自己领悟了一个方式。C 对象调用 A对象和B对象。这时把connect 放在C 对象里面。因为在C对象里面有定义 A 和 B 对象 的引用。纯属自己领悟,不对的地方或是大家有了解使用的方法,给我留言。谢谢谢谢,不胜感激。...

2021-02-28 15:13:16 2091

原创 在ubuntu 中添加指纹登陆功能

手中有一台笔记本有指纹登陆。然后安装了ubuntu 之后,一直想让其工作起来。找到一篇文章做一整理。指令:sudo apt install -y fprintd libpam-fprintd安装完之后,输入以下指令sudo pam-auth-update会显示如下界面:...

2020-10-08 10:33:00 2528 1

原创 QT5 中移植 MQTT 库,哭着解决

重点,重点,大重点!!!我从网上也是找了很多的mqtt 在qt 中的移植。但是由于版本的问题,都是不兼容。导致最后也是很难运行起来。甚至是编译 不通过。在此一定要特别强调:每个版本不一样,结果也不一样,不需要前篇一律。我使用的QT版本:QT5.14.2mqtt版本路径:https://github.com/emqtt/qmqtt/tree/master使用方法:在qmqtt-master 目录中:1、qmake2、mingw32-make3、mingw32-mak..

2020-05-18 22:45:36 1420 2

原创 单片机学习

随着社会的发展,科技进步。单片机好像变的比较低端。但是为什么还要学习单片呢?我们知道学习任何东西都需要基础,有了基础才能灵活运用。在此单片机就是我们学习嵌入式的基础。当然单片机还是运用在了我们生活中的任何一个角落。只是我们在没有入门的情况下,不了解它吧。好了,我自己做了一份资料,进行单片机培训。现在比较齐全的资料是51单片机,后面还会添加stm32 单片机的。希望能狗帮助大家。具体细节请加我的QQ...

2020-01-28 15:19:38 368 1

原创 stm32cubeMx 软件的删除用户代码的问题总结

今天研究了一下stm32cubeMx 这个软件,若是stm32 的项目比较紧急,可以使用这个软件来生成驱动代码。至于在这个软件中的模块代码的选择,配置,我这里不会多说。因为网上很多。我这里主要:总结stm32cubeMx 会删除用户代码的问题。自己的代码不会被删除的软件格式及配置方法。当然还需要注意一点:软件生成的工程不能有中文字符,要不然生成错误。1、stm32...

2019-06-20 11:07:24 6791

原创 mdk 软件内调试 debug (printf) JLINK 与SWD 调试的不同

stm32打印调试的时候,大部分使用硬件串口进行打印输出。但是近期一个项目中遇到一个问题。就是串口已经都被占用了。没有其他的串口进行打印输出了。对解决问题产生了很大的干扰。基于这个问题,我想了好多办法。最后发现在MDK软件里面,可以使用调试接口,进行打印输出。省了一个串口。但是从网站都可以搜到JLINK 的方法,但是一旦用到stlink 的swd 模式的时候,就完蛋了。怎么配置都出不来打印。原...

2019-06-16 16:57:01 1854 1

原创 ucos 零散学习

研究ucos ,今天突然发现从初始化开始,也是可以很快的了解流程。废话不多说了。我做了一个简易的excel文件。是关于函数OS_Init() 函数。定义一个栈指针变量 定义一个栈大小的变量 size 调用端口特定的初始化代码 清除中断和进程的中断嵌套计数 多任务初始化为停止状态 清除进程锁嵌套计数 初始化任务块当前指针为NULL 初始化任务快最高优先...

2019-03-18 09:28:55 179

原创 arm 汇编积累

1、ldr  的指令     [ Load   from   memory   into   a    register ]从某一个地址中读取数据到寄存器(1)ldr R0, [R1, #8]   将地址R1 + 8的字数据读入以R0存储器中     :先   加  后   操作(2)ldr R0, [R1], #8 将R1的数据读入到R0,并将R1 + 8的值存入R1  :先  操作...

2019-02-20 10:12:10 205

原创 freertos 源码学习一 ------ xTaskCreate()参数部分解析。

今天开始有决心来学习freertos 的源码,因为我感觉非开始不行了。        我从freertos 官网下载了源代码(10.1.1)。下载源代码很简单,只需要在搜索网站上输入“freertos”  在下面就出现主页面。点击进去下载就好了。这个就不多说了,这是我的第一篇学习freertos 的文章,所以提了一下上面的话。谢谢大家提出宝贵意见。今天的主角:xTaskCreate()...

2018-10-26 13:57:03 9710

原创 直流电机控制 pwm 和 pid 算法

下面的文章是我转载的。所以作者若是看到不允许转载,请给我留言或给我邮件([email protected]),我会立即删除。转载原因:这篇文章把pid 算法解释的很详细。我担心以后这篇文章无故删除,才转载到我这边的。谢谢。平衡小车和倒立摆都是用的位置式PID控制器/******************************************************......

2018-10-18 11:56:49 46960 9

原创 linux 驱动的module_init 浅析

背景:做linux 驱动,但是从来没有想过module_init 函数的实现原理。都是按照框架然后就开始写了。现在想做一个记录。解析:           驱动加载到内核中有两种方式。第一:编译进内核里,随内核启动。第二:动态加载到内核中(insmod)。这两种方式对module_init 的使用是不一样的。先简单的总结一下:第一种:在内核的  init.text __start ...

2018-10-17 10:48:16 565

原创 记录点滴----linux驱动交叉编译方法

太多的内容就不叙述了。因为就是一个小框架。(注意下面的代码不能直接复制使用,因为格式是不对。) Makefileifneq ($(KERNELRELEASE),) obj-m :=hello.o else KDIR:= /lib/modules/3.2.0-61-generic-pae/build (make 交叉编译之后的代码路径)PWD:= /home/lsl/wor...

2018-09-18 22:11:11 1540

原创 uboot-linux-移植

很多次去学习uboot 和 linux 的移植。但是都没有动手去操作。也正是没有动手去操作,才出现了一遍一遍的看。还真别说,看了这么长时间,这么多次,碰到里面的代码,反而感觉熟悉了。我不知道这是我的懒惰带来的惊喜还是没有办法的收获。但是这一次我还是计划一步一步的做下去,并记录下来,希望我能坚持下去。给自己加油!!!1、我使用的板子是FL2440 。今天晚上一咬牙我下载了u-boot-2012....

2018-08-31 23:09:18 185

转载 虚拟地址与物理地址转换--platform总线--input子系统

这篇文章写的很好。没有转载。大家去看吧,谢谢作者。https://blog.csdn.net/u013904227/article/details/48754073 关于MMU 和物理地址的描述,谢谢作者。https://www.cnblogs.com/dudu1990/archive/2013/11/04/3406265.html platform 总线解析,还有一个例子...

2018-08-30 09:43:23 220

原创 单片机与arm对比学习-----时钟(一)

我刚开始接触的架构是:51单片机。是单片机把我领到了电子世界,把自己的思想注入到单片机里,就可以运行起来。就像“hello world”一样经典,我点亮了led 流水灯。到了好久才反过来想想,应该总结一下。但是我有这个想法的时候,我已经接触到了stm32 和arm9等架构核。所以我之前的想法就变成了把这几样总结一下吧。是不是很好啊,大家一起来找错。。。。51单片机、stm32、s3c244...

2018-08-29 21:17:15 967

原创 51单片机和proteus制作贪吃蛇的蛇

这几天兴趣来潮,两天时间制作一个51版的贪吃蛇吧。确实用了两天时间,制作了一条贪吃蛇的蛇,方向控制到处跑。我没有想把这个蛇做的多完美。但是现在能跑起来了。项目介绍:贪吃蛇  项目作用:学习单片机的各位,有兴趣的各位研究一下。开始表演了!!! 1、使用工具:    keil:              proteus:     2、使用语言: ...

2018-08-26 19:55:44 3324 4

原创 C51与proteus 联调

博客宗旨:<节约时间,减少篇幅,注重要点>好像宗旨一直再更换,但是万变不离其宗。目的还是让读者能够在最短的时间来得到自己的知识。 1、从网络搜到了很多网页都是修改配置文件,说实话我比较懒,然后我选择脚本。若是大家跟我一样,就也用脚本吧。网络搜索:vdmagdi.exe     路径安装完之后,还需要简单的把keil  c51 的调试模式改为protues。 配置如下...

2018-08-22 22:04:56 786

原创 51单片机C语言编程杂谈基础----全局变量和局部变量

<  博客宗旨:文章短,时间短,不考验耐力    >我记着我在开始编写51单片机程序的时候,老是在思考一个问题:怎么把一个函数中的值传到另一个函数中去呢???让我痛不堪言。虽然简单,但是在那个时候我还是不知道的。 全局变量:就是在整个工程都可以使用的(概括说,当然需要引用extern 等关键字)。局部变量:是在函数内有效。或者说是在  {   }  域内有效的变量。...

2018-08-20 23:10:10 3238

原创 android studio 安装之后的配置。

andriod studio 安装完之后发现使用内存和CPU 相当大,让我很是纠结,因为电脑是双核四线程,很快就发现卡顿了。于是各种网络搜索,将搜索到的方法,记录这个地方,于己于人都方便吧。1、占用内存问题      Ctrl +  Alt  +  s   :打开配置界面后,将不用的插件关掉。在图中的第二步,要按照自己的实际情况来选择哪一些插件不使用。上面列出来的仅是我不用的。...

2018-08-19 21:56:19 226

原创 android Fragment

这个话题已经阻拦我4天了。写完c 语言再来做Java 编程还是比较痛苦的。我今天晚上终于对Fragment 有一定的了解了。记录下来。过程当中有能帮助的各位的,我也很高兴。不能帮助给位的,就走过路过,提一些建议吧。谢谢。1、目的      想实现顶部导航栏。2、折磨     我看了tablayout ,tabhost 等等办法。最后还是选中了Fragment3、使用方法  ...

2018-08-14 23:35:50 130

原创 android 调用另一个activity 简单做法

懒了一下午,终于用不到一个小时的时间,实现了一个activity调用另一个activity 的宏远。哈哈哈哈   本做法纯属我这菜鸟的入门。本小教程不提供新建activity 的办法哈,百度一大把的。目的:我想在主窗口中调用另一个activity,来做另一个界面的内容。1、声明import android.content.Intent;好多帖子都是只有做法,没有声明,对于菜鸟的我...

2018-08-11 20:03:15 4109

原创 android framlayout 布局控件使用

现在又是12点了。今日比较有意义的事情就是使用到了framelayout。还是之前一样,不唠叨!记录每一点收获。一、动机: 我想在ImageView 上面放置textview 控件,来显示文字,这样我就不需要去画背景了。像是在偷懒。二、办法:从度娘那里获得一个android 控件    《Framelayout》。       使用Framelayout 的原因是:可以将控件层叠起来。...

2018-08-11 00:23:23 1126

原创 android 系统时间实时显示

又12点了。啊。。。 每到这个时候就要开始记录自己遇到的问题了。不叨叨,直接上硬菜。目的:在android UI 上实时显示系统时间做法:(过程当中没有使用import  引用其他的库)1、获取系统时间long ms = System.currentTimeMillis();         (ms 就是读取到的时间值。)2、因为我们需要使用 《 年  月  日  时  分  ...

2018-08-10 00:27:06 1450

原创 android 定时器更新UI

很快就到了22:30.作为程序员,现在这个时间,好像是吃完饭刚开始吧。唠叨结束。 目的:使用定时器每秒更新一下 TextView ,来显示一下上面的内容。艰辛使用之路开始了。注意:在我的使用探索过程中我得知,定时器任务的run 方法是开启另一个子线程。但在子线程中又不能直接更新UI。Handler 就解决了这个问题。制作过程:1、声明所使用的类import java.util.Timer; ...

2018-08-09 19:48:42 3111

原创 android studio 链接夜神模拟器

时间真快,到了晚上12点。但是今天晚上那个处理的内容是《android studio  链接 夜神安卓模拟器》,过程当中遇到了好多不知道的配置,导致时间过了很多。废话不多说,记录遇到的问题。有些内容是摘抄的。谢谢。1、夜神模拟器的SDK API 19.而android studio 软件的sdk 版本是28.在使用夜神时,会出现如下错误:minSDK API  28  >   dev...

2018-08-09 19:47:53 873

ucosiii OSInit()函数简略解析

文档是excel 文件,我仅是把OSInit() 函数的流程,简要的整理了一下。从这个函数中发现了洞天。传上来让各位再次补充。里面肯定有错误或不当的说法。但是对于内核的学习很有帮助。

2019-03-18

snake_project

贪吃蛇设计,使用的C语言来设计,尽量做到模块设计。大家有想研究的可以继续。有借鉴的可以借鉴。

2018-08-26

C语言全局/局部变量

这个工程里面的描述很简单。就是陈列了一个全局变量和一个局部变量。适合人群:刚开始C语言单片机编程的开发人员。对函数之间数据交互不太清楚的人。

2018-08-20

mqtt移植到stm32的源码

若是使用mqtt 的伙伴,里面可以修改为串口的使用。现在的是at命令的操作。基于stm32 的平台。

2018-05-05

空空如也

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

TA关注的人

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