STM32笔记
文章平均质量分 70
扛锡勺的Tony
这个作者很懒,什么都没留下…
展开
-
STM32配置引脚时遇到的问题
寄存器配置IO输入输出问题来源:移植原子哥的IIC例程时,想修改一个SDA和SCL的引脚,却发现原子哥有一部分代码使用了寄存器编程。原函数如下://IO方向设置#define SDA_IN() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;} //PB7输入模式#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<原创 2021-11-14 20:49:58 · 1619 阅读 · 2 评论 -
STM32笔记之FreeRTOS
文章目录1. RTOS简介1.1 基本概念1.2 基本名词1.3 FreeRTOS2. 任务2.1 基本属性2.1.1 优先级2.1.2 任务控制块/任务堆栈任务控制块任务堆栈2.2 状态2.3 操作3. 机制简介3.1 队列3.2 信号量3.3 任务通知3.4 低功耗模式3.4.1 STM32支持的低功耗模式3.4.2 空闲任务的钩子函数实现的低功耗3.4.3 Tickless模式3.5 列表和列表项3.6 内存管理4. 任务相关API函数4.1 任务创建和删除4.1.1 创建:xTaxkCreate()原创 2021-08-21 20:29:28 · 859 阅读 · 0 评论 -
STM32笔记之ADC/DAC
10. ADC10.1 简介STM32的ADC是12位(分辨率)逐次逼近型的模拟数字转换器,最大转换速率为1MHz(转换时间为1us),不要让ADC的时钟超过14M,否则会导致结果准确度下降STM32将ADC分为2个通道组:规则通道组和注入通道组,规则通道相当于你正常运行的程序,而注入通道呢,就相当于中断。也就是,注入通道的转换可以打断规则通道的转换不同的通道的数据存储在不同的通道寄存器中。两个通道转换完成后都能够产生中断或DMA请求以ADC1的通道1进行AD转换为例:单次转换模式只执行一次转换,原创 2021-08-21 20:17:50 · 1117 阅读 · 0 评论 -
STM32笔记之IIC/SPI
14. SPI14.1 简介串行外围设备接口,高速、全双工、同步的通信总线,采用主从工作方式主要应用在EEPROM、FLASH、实时时钟、AD转换器、还有数字信号处理器和数字信号解码器之间,通信距离较短,主要用于板内通信14.1.1 四条通信线MISO:主设备数据输入,从设备数据输出MOSI:主设备数据输出,从设备数据输入SCLK:时钟信号,由主设备产生CS:从设备片选信号,由主设备控制14.1.2 移位寄存器一种在若干相同时间脉冲下工作的以触发器为基础的器件,数据以并行或串行的方式输入原创 2021-08-21 20:19:17 · 536 阅读 · 0 评论 -
STM32笔记之基础外设
4. 外部中断4.1 简介(1)STM32F1的每个IO都可以作为外部中断的中断输入口(2)STM32F1支持最多19个外部中断(3)GPIO和中断线的对应关系:GPIOx.0GPIOx.15(x=A,B,C,D,E,F,G,H,I)分别对应中断线015。这样每个中断线对应了最多9个IO口。以线0为例:它对应了 GPIOA.0、GPIOB.0、GPIOC.0、GPIOD.0、GPIOE.0、GPIOF.0、GPIOG.0而中断线每次只能连接到1个IO口上,这样就需要通过配置来决定对应的中断线配置到原创 2021-08-21 20:15:43 · 739 阅读 · 0 评论 -
STM32笔记之CubeMX的使用
3. CubeMX3.1 创建一个工程(1) 选择第一个选项:根据MCU创建工程(2) 选择芯片型号注意这个选项要改为Serial Wire(3)配置引脚功能1) 直接点击芯片引脚配置引脚的功能(搜索框通过引脚名称搜索)2) 选择引脚功能后,在该界面进行详细的配置(4) 时钟配置对时钟没有要求的,可直接使用默认配置(详见3.2.2)(5) 设置工程的默认选项1) 第一个是工程名字2) 第二个是工程路径3) 第三个是工程IDE的选择,选择MDK-ARM4) 第四个是堆原创 2021-08-21 20:10:21 · 839 阅读 · 0 评论