- 博客(8)
- 收藏
- 关注
原创 STM32——学习笔记8
STM32定时器开发基础STM32的常见的定时器资源·系统嘀嗒定时器SysTick这是一个集成在Cortex M3内核当中的定时器,它并不属于芯片厂商的外设,也就是说使用ARM内核的不同厂商,都拥有基本结构相同的系统定时器。主要目的是给RTOS提供时钟节拍做时间基准。·看门狗定时器WatchDog·实时时钟RTC·基本定时器:TIM6、TIM7·通用定时器:TIM2、TIM3、TIM4、TIM5在基本定时器的基础上,实现输出比较、输入捕获、PWM生成、单脉冲模式输出等功能。这
2021-02-21 11:50:15 314
原创 嵌入式c语言——学习笔记7
嵌入式c语言——学习笔记7STM32的中断系统·中断、中断源、中断向量、中断优先级、中断服务函数...·ARM Cortex M3内核支持256个中断,包括16个内核中断和240个外设中断,拥有256个中断优先级别。·STM32的中断通道可能会由多个中断源共用。这就意味着,某一个中断服务函数也可能被多个中断源所共用。所以,在中断服务函数的入口处,需要有一个判断机制,用以辨别是那个中断触发了中断。·STM32中有2个优先级的概念:抢占优先级和响应优先级,每个中断都需要指定这两种优先级。
2021-02-18 19:36:04 634
原创 嵌入式c语言——学习笔记
嵌入式c语言——学习笔记6STM32的按键开发基础按键描述的基本原理:·按键信号的识别:一般来说,按键的两个引脚的一端通过电阻上拉到高电平,另一端则接地。在没有按键按下的时候,输入引脚位高电平,当有按键按下,输入引脚为低电平。通过反复读取按键输入引脚的信号,然后识别高地电平来判断是否有按键触发。·为什么去抖动:按键的输入引脚有低电平产生不代表一定是有按键按下,也许是干扰信号,因此,需要通过去抖动处理,将这些干扰信号过滤,从而获得真实的按键触发信号。·如何去抖动:首次检测到按键
2021-02-13 22:12:48 436
原创 嵌入式c语言——学习笔记
嵌入式c语言——学习笔记5一、STM32系统架构STM32主系统主要是由四个驱动单元和四个被动单元构成:四个驱动单元:(图4.2.1中②③④)①内核DCode总线②系统总线③通用DMA1④通用DMA2四个被动单元:(图4.2.1中⑥⑦⑧⑨)⑥AHB到APB的桥:连接所有的APB设备⑦内部flash闪存⑧内部SRAM⑨FSMC图4.2.1中六个总线:①ICode总线:该总线将M3内核指令总线和闪存指令接口相连,指令的预取在该总线上面完成。②DCode总线:
2021-02-08 20:57:38 272 1
原创 嵌入式c——学习笔记
嵌入式c——学习笔记4运用结构体指针输出结构体中变量#include<stdio.h>struct Data{ int year; int mounth; int day;}data; int main(){Data data={2020,11,7}; struct Data *ptr; ptr=&data; printf("%d",ptr->year); printf("-%d",data.mounth); printf("-%d",
2021-02-05 13:31:06 140
原创 嵌入式c语言——学习笔记
嵌入式c语言——学习笔记3一、指针的运用最普通的指针:int *a;调用形式:1、a——a指向的对象的地址2、a——a指向的对象的值3、&a——a自身的地址常用来作为参数,调用数组,加上一个说明数组的长度的,从而获取不定大小的数组第二种:int a[N] //指针数组,包含N个整型指针对应地:int (*a)[N] //数组指针,指向大小为N的数组嵌入式编程中常见对寄存器进行读写的:特别的:*(int*)(addr) //addr为地址,通常形式为0.
2021-02-04 15:15:07 208
原创 嵌入式c语言——学习笔记
嵌入式c语言——学习笔记2一、Typedeftypedef 在代码中用得最多的就是定义结构体的类型别名和枚举类型struct _GPIO{__IO uint32_t CRL;__IO uint32_t CRH;…};定义了一个结构体 GPIO,这样我们定义变量的方式为:struct _GPIO GPIOA;//定义结构体变量 GPIOA但是这样很繁琐, MDK 中有很多这样的结构体变量需要定义。这里我们可以为结体定义一个别名 GPIO_TypeDef,这样我们就可以在
2021-02-03 16:54:53 252
原创 嵌入式C语言——学习笔记
嵌入式C语言——学习笔记1一、位运算符号运算规则&(与)两个位都为1时,结果才为1(从真假方面看,只有当两个位都为真时,结果才为真)\(或)两个位都为0时,结果才为0 (从真假方面看,如果两个运算对象中相应的一个位为真或者两个位都为真,那么结果为真)^(异或)两个位相同为0,相异为1(从真假方面看,如果两个运算对象中相应的一个位为真且不是两个位同为1,那么结果为真)~(取反)0变1,1变0<< (左移)各二进位全部左移若干位,高位
2021-02-02 20:40:45 231
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人