- 博客(7)
- 收藏
- 关注
转载 STM32嵌入式开发学习笔记(三)
STM32的中断系统1.中断介绍: 1.1 中断概念 CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂 时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序 或中断处理程 序),以处理该事件,该事件处理完后又返回被中断的程序 继续执行,这一过程称为中断。引发中断的称为中断源。比如:看电视 时突然门铃响,那么门铃响就相当于中 断源。有些中断还能够被其他高 优先级的中断所中断,那么这种情...
2021-02-18 23:36:01 923
转载 STM32嵌入式开发学习笔记(二)
STM32按键开发基础(๑¯ ³ ¯๑)一、按键扫描的基本原理(:3_ヽ)_按键信号的识别:一般来说,按键的两个引脚的一端通过电阻上拉到高电平,另一端接地。在没有按键按下的时候,输入引脚为高电平。(接上拉电阻)当有按键按下,输入引脚则为低电平。通过反复读取按键输入引脚的信号,然后识别高低电平来判断是否有按键触发。为什么去抖动:按键的输入引脚有低电平产生不一定代表没有按键按下,也许是干扰信号,因此需要通过去抖动处理将这些干扰信号过滤如何去抖动:首次检测到按键输入引脚有低电平后,稍作
2021-02-13 16:44:05 362
转载 STM32嵌入式开发学习笔记(一)
一、stm32软件编程STM32CubeMX是ST官方推出的一种STM32设置和初始化C代码的生成器。它可以直观的选择STM32微控制器、配置微控制器、自动处理引脚冲突、动态设置确定时钟树、动态确定参数设置的外围和中间件模式和初始化。CubeMX生成的代码可以在KEIL、IAR、GCC等编程软件上面使用。简单理解,就是CubeMX软件是一个工具软件,我们只要在上面简单的点点点就可以生成STM32功能代码工程,这个代码工程已经包括了必要的外设初始化程序,这样节省我们的工作量,我们的工作重点放在项目任务的实
2021-02-10 22:35:41 935
转载 嵌入式C基础知识学习(四)
一、结构体的参数传递c/c++的结构体传参可以有三种方式: 1、传递结构体变量,值传递 2、传递结构体指针,地址传递 3、传递结构体成员,可是值传递也可以是地址传递根据代码示例:1、传递结构体变量1 #include<iostream> 2 #define COMMANDLENGTH 100 3 using std::cout; 4 using std::endl; 5 //注意 c和c++中struct和typedef struct有区别。 6 s
2021-02-05 22:52:46 288
转载 嵌入式C基础知识学习(三)
一、内存操作C语言允许程序变量在定义时就确定内存地址,通过作用域,以及关键字extern,static,实现了精细的处理机制,按照在硬件的区域不同,内存分配有三种方式(节选自C++高质量编程):1). 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。2). 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的
2021-02-04 21:37:04 533
原创 嵌入式C基础知识学习(二)
一、宏定义Define是C语言中的预处理指令,用于宏定义可以提高源代码的可读性。常见的格式为:#define 标示符字符串。其中,“标识符”为所定义的宏名;“字符串”可以是常数、表达式和格式串等。例如:#define PLL_Q 7 //定义标识符PLL_Q的值为7#define 是 C 指令,用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您
2021-02-03 22:06:20 412
原创 嵌入式C基础知识学习(一)
前言本人今天刚开始学stm32,嵌入式C是stm32学习的基础,先贴张嵌入式开发的技能树:一、位运算C语言中的位运算操作命令在嵌入式系统开发中使用频繁,常常需要灵活应用。目前C语言支持六种位操作命令。运算符 & | ^ ~ << >> 功能 按位与 按位或 按位异或 取反 左移 右移 &、 | 和 ^ 的真值表如下所示:p q p & q
2021-02-02 11:55:10 2420
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人