摘要: 概述: 当前开发中,我使用的Keil开发工具较多(keil526),故以keil为例进行介绍,其他开发环境大同小异。 1. 编译链接的定义 不管我们编写的代码有多么简单,都必须经过「编译 --> 链接」的过程才能生成可执行文件: 编译就是将我们编写的源代码“翻译”成计算机可以识别的二进制格式,它们以 阅读全文
posted @ 2021-09-16 17:57 decrement 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 杂谈 工作了一天,脑袋比较乱。一直想把底层的知识写成一个系列,希望可以坚持下去。为什么要写底层的东西呢?首先,工作用到了这部分内容,最近和内部Flash打交道比较多,自然而然会接触到一些底层的东西;第二,近些年来Cortex-M阵营各厂商(ST、Nordic、ATMEL……)对新产品的迭代速度越来越 阅读全文
posted @ 2021-09-16 17:56 decrement 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 1. keil编译介绍 当使用keil进行单片机的开发时,运行一段程序后,在output输出框会看到如下图的结果。 图1 keil 的output框 其中,Compiler编译器,使用的版本是 V5.06,程序会先经过编译、后链接linking生成可执行的代码,如果要下载单片机的Flash上,还需要 阅读全文
posted @ 2021-09-16 17:56 decrement 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 摘要:上位机软件程序通过QT实现,采集输入信息,根据实际需要做出合适的串口通讯协议,实现效果如下图所示: 主要实现的功能: 1.串口基本参数可选,可调 2.显示区域可选择十六进制/asicii码显示,可根据自己的需求调整多少字节对齐,显示的比较工整,有利于解析协议 3.可自己制定协议头,其他子项内容 阅读全文
posted @ 2021-09-15 18:18 decrement 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 1.面向过程于面向对象 面向过程”(Procedure Oriented)是一种以过程为中心的编程思想 对象程序设计(Object Oriented Programming,OOP)是一种计算机编程架构。OOP的一条基本原则是计算机程序由单个能够起到子程序作用的单元或对象组合而成。 面向对象的三个目 阅读全文
posted @ 2021-09-15 18:14 decrement 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 【@.1 从位带操作开始】 初接触STM32的人一定花了不少时间用于理解其位带操作(bit banding)的原理与步骤。位带操作允许编程人员以字的单位读/写单一bit位。回想我们平时对于一个bit位的操作比如:↓ @-> PIN0 |= (1<<3); @-> PIN0 &= ~(1<<5); 虽 阅读全文
posted @ 2021-09-15 18:13 decrement 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 原标题:嵌入式读书列表 - 参考 本篇标题用EE不免“大”了点儿,但事实上EE毕业的同学们做嵌入式已不是大惊小怪的事情。 “Curriculum of Open Source University” 三百六十行,各行亦有各行的书柜,一些瞧过的书,Linux嵌入式方向,年末了,写个读后感大集合,若对大 阅读全文
posted @ 2021-09-15 18:12 decrement 阅读(58) 评论(0) 推荐(0) 编辑
摘要: STM32 精确输出PWM脉冲数控制电机 发脉冲两种目的1)速度控制2)位置控制速度控制目的和模拟量一样,没有什么需要关注的地方发送脉冲方式为PWM,速率稳定而且资源占用少stm32位置控制需要获得发送的脉冲数,有下面4种手段1)每发送一个脉冲,做一次中断计数2)根据发送的频率×发送的时间,获得脉冲 阅读全文
posted @ 2021-09-15 18:10 decrement 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 阅读目录 STACK AND FUNCTIONS STACK FUNCTIONS ARM和Sparc比较 关于函数的调用和返回 关于函数调用时的frame pointer,fp保存 总结一下函数调用和返回 主要描述一下ARM处理器的堆栈和函数调用过程,并和Sparc处理器进行对比分析。 关于ARM处 阅读全文
posted @ 2021-09-13 13:58 decrement 阅读(427) 评论(0) 推荐(0) 编辑
摘要: /**/ 1 #define TASK_NUM (3) 2 3 typedef struct _TASK_COMPONETS_ 4 { 5 uint8_t Run; //运行状态 6 uint16_t Timer; //任务启动延时,设置此值防止任务重叠 7 uint16_t lvtTime; // 阅读全文
posted @ 2021-09-13 11:34 decrement 阅读(87) 评论(0) 推荐(0) 编辑