自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 stm32第五次学习

STM32的常见的定时器资源 系统嘀嗒定时器SysTick 这是一个集成在Cortex M3内核当中的定时器,它并不属于芯片厂商的外设,也就是说使用ARM内核的不同厂商,都拥有基本结构相同的系统定时器。主要目的是给RTOS提供时钟节拍做时间基准。 看门狗定时器WatchDog 实时时钟RTC 基本定时器:TIM6、TIM7 通用定时器:TIM2、TIM3、TIM4、TIM5 在基本定时器的基础上,实现输出比较、输入捕获、PWM生成、单脉冲模式输出等功能。这类定时器最具代表性,使用也最广泛。

2021-03-05 15:49:11 740 1

原创 stm32第四次学习

STM32的中断系统 中断、中断源、中断向量、中断优先级、中断服务函数....ARM Cortex M3内核支持256个中断,包括16个内核中断和240个外设中断,拥有256个中断优先级别。 STM32的中断通道可能会由多个中断源共用。这就意味着,某一个中断服务函数也可能被多个中断源所共用。所以,在中断服务函数的入口处,需要有一个判断机制,用以辨别是那个中断触发了中断。 STM32中有2个优先级的概念:抢占优先级和响应优先级,每个中断都需要指定这两种优先级。 Cortex M3内核中有一个称为嵌套向

2021-03-05 15:47:31 648

原创 stm32第三次学习

HAL库中电平输入函数 GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uint16_t GPIO_Pin); 例:判断PC13引脚的输入信号,若为高电平,则将PB9引脚控制的LED灯的开关状态切换。 if(HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13)==GPIO_PIN_SET ) { HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_9); } STM32CubeMX配置 基础配置和之.

2021-03-05 15:46:08 435

原创 stm32第二次学习

STM32的GPIO端口知识要点 STM32芯片最拥有GPIOA、GPIOB...GPIOG等7组端口,每组端口最多拥有Pin0、Pin1...Pin15共16个引脚。 STM32的每个IO端口都可以自由编程,但IO端口寄存器必须按32位字被访问。 STM32的每个IO端口都由7个寄存器来控制。STM32的I/O端口可以由软件配置成8种模式: 1-推挽输出 2-开漏输出 3-推挽式复用功能 4-开漏式复用功能 5-模拟输入(AD转换的模拟信号)  6-浮空输入 7-下拉输入 8-上拉输入 GPIO电平输出

2021-03-05 15:44:37 374

原创 STM32学习第一课

STM32的GPIO端口知识要点 STM32芯片最拥有GPIOA、GPIOB...GPIOG等7组端口,每组端口最多拥有Pin0、Pin1...Pin15共16个引脚。 STM32的每个IO端口都可以自由编程,但IO端口寄存器必须按32位字被访问。 STM32的每个IO端口都由7个寄存器来控制。STM32的I/O端口可以由软件配置成8种模式: 1-推挽输出 2-开漏输出 3-推挽式复用功能 4-开漏式复用功能 5-模拟输入(AD转换的模拟信号)  6-浮空输入 7-下拉输入 8-上拉输入 GPIO电平输出

2021-02-11 00:47:53 374

原创 嵌入式C学习第四课

结构体的参数传递 参考文章:https://blog.youkuaiyun.com/lin37985/article/details/38582027 一是传递结构体变量,这是值传递,二是传递结构体指针,这是地址传递,三是传递结构体成员,当然这也分为值传递和地址传递。 以传引用调用方式传递结构比用传值方式传递结构效率高。以传值方式传递结构需要对整个结构做一份拷贝。 下面看一个列子,student结构体中包含该学生的各种信息,我们在change函数中对其进行部分修改,再在主函数中输出其结果 1.下面传递结构体.

2021-02-05 23:41:54 170

原创 嵌入式C学习第三课

内存操作 内存分配 数据放哪里 栈空间:局部变量、函数形参、自动变量(调用后释放) 堆空间:malloc、realloc、calloc分配空间 数据段:.bss:保存未初始化的全局变量 .rodata:常量 .data(静态数据区):全局变量、static修饰的局部变量内存分配方式 (1)从全局数据区分配 (2)在栈上创建 (3)在堆上创建常见的内存错误 (1)内存分配未成功,却使用了它 (2)内存分配虽然成功,但是尚未初始化就引用它 (3)内存分配成功并已经初始化,但操作越过了内存的边界 (4)...

2021-02-04 23:23:16 153

原创 嵌入式C学习第二课

typedef 类型别名 typedef用于为现有类型创建一个新的名字,称为类型别名,可简化变量的定义。在嵌入式系统开发中, typedef常用于定义结构体别名和枚举类型了。 struct _GPIO { __IO uint32_t MODER; __IO uint32_t OTYPER; ...... }; 上述指令定义了一个结构体 _GPIO。 结构体 结构体是一种工具,用这个工具可以定义自己的数据类型。 与数组相比,结构体中各个元素的数据类...

2021-02-03 22:57:56 725

原创 嵌入式C学习第一课

嵌入式C学习第一课 define 宏定义 Define是C语言中的预处理指令,用于宏定义可以提高源代码的可读性。常见的格式为:#define 标示符 字符串其中,“标识符”为所定义的宏名;“字符串”可以是常数、表达式和格式串等。 例如: #define PLL_Q 7 //定义标识符PLL_Q的值为7 ifdef 条件编译 条件编译命令可以实现:当满足某条件时对一组语句编译,而条件不满足时编译另一组语句的功能。 常见的格式为: #ifdef 标识符 程序段1 #else 程序段...

2021-02-02 17:54:22 463

空空如也

空空如也

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

TA关注的人

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