![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
stm32自学笔记(欢迎指正)
文章平均质量分 84
点灯的棉羊
我是只_只会点灯的棉羊
展开
-
Stm32文件系统FATFS(开始于2021-09-09)
Stm32文件系统FATFS参考资料主要是原子和野火两家的讲解。1.FATFS简介:适合嵌入式小型单片机,是一个 独立 的软件层文件系统,我们只需要将底层硬件的读取函数移植到FATFS提供的向下的接口(Media Access Interface),完成之后,就可以像电脑一样使用文件的操作函数(FATFS提供的向上的供我们使用的API函数 (Application Interface) )。FAFTS中的函数参数介绍中的,IN表示该参数是传入数值;OUT表示,该参数是介质用于存放需要传出数据的载体。原创 2021-09-09 14:51:42 · 11283 阅读 · 0 评论 -
Stm32笔记-NVIC中断向量控制(开始于2021-09-05)
Stm32笔记-NVIC中断向量控制NIVC中断控制的寄存器(组)是位于cortex-M3内核中的,所以平时可能较少接触所以在这里补充一个笔记。参考资料主要是《cortex-M3中文参考手册》1.一些与内核有关的名词在内核中,所有的中断都可以称为 ”异常“ :”异常“ 定义如下:”挂起“:即一个异常不能被立即响应时的状态,(我理解为 ”立flag“)定义如下:注意:功能上是与FreeRTOS中的挂起任务列表相同,但挂起任务列表与其没有关系(时使用链表实现的)向量表:实际上是处理原创 2021-09-05 15:57:00 · 538 阅读 · 1 评论 -
stm32之内存管理(2021-09-02)
stm32之内存管理1.分块式内存管理:内存池与内存表:内存管理结构体:内存管理相关宏:内存管理数组:2.内存管理函数初始化://内存管理初始化 //memx:所属内存池0/1/ccm(F4)void my_mem_init(u8 memx) 使用率查看函数://获取内存使用率//memx:所属内存池0/1/ccm(F4)//返回值:使用率(0~100)u8 my_mem_perused(u8 memx) 申请内存函数://分配内原创 2021-09-02 20:13:04 · 455 阅读 · 0 评论 -
STM32调试及仿真(开始于2021-09-02)
STM32调试及仿真1.使用SWJ的调试:1)原理:需要注意的是:SWD模式只需要两根数据线(数据线和时钟线,不包括VCC,GND);而JTAG需要5根数据线(也不包括VCC和GND);所以通常会选择IO口占用较少的SWD模式(避免对程序使用的IO造成影响)。2)SWJ的相关引脚在我们不使用SWJ进行调试时,需要注意的一点是: 上面的IO在上电后默认就是进入调试模式(上电默认就是为复用的),如果我们要将这些IO口当成普通的IO使用的话,2️⃣就需要将他们的复用功能禁止,使用如下的库函数(位于s原创 2021-09-02 12:36:49 · 2242 阅读 · 0 评论 -
stm32汉字字库显示实验与OLED的使用(开始于2021-09-01)
stm32汉字字库显示实验与OLED的使用1.字库的使用GBK字库的简介:GBK库的由两部分组成,如下图:高位从0x81开始是为了兼容ASII字符,因为未扩展的ASII字符是从0-128,即0x00-0x80;汉字编码均为连个字节,所以在ASII字符显示8 * 16的字符时,汉字为16 * 16;这儿需要注意一点,我们使用的编辑器的方式,要与字库的编码方式对应才行(GBK);因为在使用字库的过程中是1️⃣从字符的地址访问出它的(2字节)编码(编辑时使用GBK,则为GBK编码),2️⃣原创 2021-09-01 12:41:14 · 6114 阅读 · 1 评论 -
stm32之时钟树及systemclock(始于2021-08-29)
stm32之时钟树及systemclock1.时钟树:1)框图:如上图:内部系统的时钟来源,常被分为5种:HSE,HSI,LSI,LSE,和PLL(即1PLLCLK,实际上PLL是来自以上四个分频,倍频后得到的);通常在写时钟配置的程序的时候,常常需要将图中的1、2、3先配置,然后配置5、6、7;最后才将中间的“隔阂” 4 “ 打通”;(具体配置的方法可以看下面的寄存器和库函数操作);各种时钟的简介:HSE:外部高速时钟,常用8MHz;HSI:内部高速时钟,也是8MH原创 2021-08-29 21:35:28 · 749 阅读 · 0 评论 -
Stm32之CAN通信(2021-08-13)
Stm32之CAN通信文章目录Stm32之CAN通信1.CAN*(Controller Area Network)*协议简介1)协议种类及特点:2)物理层特征:3)协议层简介:(均为MSB)2.Stm32的bxCAN *(Basic eXtend CAN)*1)bxCAN简介:2)过滤器位宽及模式3)bxCAN模式简介:4)邮箱发送过程:5)邮箱接收过程:3.bxCAN寄存器介绍:1)CAN控制和状态寄存器2)CAN邮箱寄存器3)CAN过滤器寄存器4.库函数使用1)流程:初始化流程:发送数据:接收数据:原创 2021-08-13 10:40:33 · 1137 阅读 · 0 评论 -
stm32之电阻触摸屏实验(2021-08-09)
电阻触摸屏文章目录电阻触摸屏1.电阻触摸屏原理:1)原理简介:2)XTP2046 两路AD转换芯片2.原子函数的使用3.小项目练习1.电阻触摸屏原理:1)原理简介:通过TFTLCD中位于边缘两端的两个电极(X+,X-,Y+,Y-),形成2个相互垂直的5V的电场,当有物体触摸液晶屏时,由于下方的电阻丝的分压效应,触摸点处的电压将是一个0-5V的电压,且这个电压是与触摸的位置成一次函数关系的,我们只需通过校准后得知X0,Y0 处的电压值和该直线的斜率,我们就可以通过其他点触摸时的电压换算出其位置。原创 2021-08-09 22:18:08 · 5061 阅读 · 0 评论 -
Stm32之SPI笔记(2021-08-07)
Stm32之SPI笔记1.32的SPI简介:1)SPI简介:特点:高速(最快可达10MHZ)全双工,同步,不带应答;具有CRC校验。通讯线:MISO (Master Input Slave Output) :对主机(从机)来说,数据发送(接收)线;MOSI (Master Output Slave Input) :对主机(从机)来说,数据接收(发送)线;SCLK (Serial Clock) :时钟线;CS (Chip Select) :片选线(拉低即选中,有多少个从原创 2021-08-07 10:28:46 · 1217 阅读 · 0 评论 -
Stm32之DMA直接内存读取(2021-07-30)
Stm32之DMA直接内存读取1.DMA简介:DMA*(Direct Memory Access controller)*:可用于为CPU减负,可以将内存中的数据与外设中的数据进行搬运(无法进行计算操作,单纯的搬运),而在此期间内CPU可以去处理其他事物。(说白了,就是一个搬运工)特性简介如下:(摘自原子的数据书册)Stm32有两个DMA控制器,DMA1(7个通道),DMA2(5个通道);有三种传输单位宽度可选:字节(8位)、半字(16位)、全字(32位);通道间有四种优先原创 2021-07-30 17:39:46 · 2918 阅读 · 0 评论 -
STM32之单DAC数模转换输出(2021-07-30)
STM32之单DAC数模转换输出1.DAC简介及框图:DAC功能只有STM32大容量的芯片才具有;中低容量的芯片没有;DAC有两个 8位*(右对齐)或者是12位(左或右对齐)*的转换器,每个转换器只有一个通道,所以通常在使能时都是直接操作对应的通道,DAC_OUT1对应PA4;DAC_OUT2对应PA5;注意:为防止对DAC造成干扰,使用DAC对应的IO应设置为模拟输入在上图的寄存中,DORx寄存器是无法直接写值的,只有DHRx寄存器可以进行写操作,控制器会在一个时钟脉冲后将DH原创 2021-07-30 11:57:52 · 860 阅读 · 0 评论 -
STM32之待机唤醒(2021-07-29)
STM32之待机唤醒1.低功耗模式简介:2.几种模式:1)主要介绍待机模式:可以看出待机模式与停机模式的不同只在是否置LPDS位 (PWR_CR[0]);实际上待机模式比停机模式更加省电,只需2uA的电流即可维持;SLEEPDEEP位是位于系统控制寄存器(见M-3内核手册)上2)睡眠与停机模式的简介:推出睡眠模式只需要,任一中断或事件即可;注意:进入睡眠模式时,I/O引脚均保持运行状态停止模式:同样是预先设置好的中断或事件可已将其唤醒,值得注意的是,要从停止模式用原创 2021-07-29 10:58:35 · 2994 阅读 · 0 评论 -
Stm32之单ADC模数转换(2021-07-28)
Stm32之单ADC数模转换1.单ADC总体框图:由上图可以看出:Stm32 (大容量) 共有3个ADC转换器:其中ADC1有18个通道 (16个外部通道,2个内部:1个温度,1个V_refint 内部参考电压通道),ADC2 3则只有16个通道;拥有三种可触发中断(EOC (规则通道转换完成) ,JEOC (注入通道转换完成),AWD (模拟看门狗阈值触发) )改ADC为12位逐次比较性ADC,其最大速度为1us;所以输入时钟不可超过14Mhz*(具体见下)*注入通道与规则通原创 2021-07-28 09:46:46 · 857 阅读 · 0 评论 -
Stm32之RTC时钟(2021-07-26)
Stm32之RTC时钟1.时钟框图:先将之前没做笔记的时候的时间框架图补上:同样源自正点原子的PPT,图中红框的部分为RTC的时钟源,有三种:HSE的128分频;LSI(大概40kHz)LSE(原子精英板上外接32.768kHz)RTC内部的时钟图:内部共有三个中断:RTC_Second秒中断,即每个TR_CLK脉冲*(通常设置为1hz,即脉冲时间周期1s)*均会中断一次;图中的预分频器主要目的也是为了将RTC_CLK分频产生TR_CLK为1s的脉冲R原创 2021-07-26 11:28:21 · 1302 阅读 · 0 评论 -
Stm32FSMC及TFTLED屏笔记(开始于2021-07-23)
Stm32FSMC及TFTLED屏笔记截图的图片出自正点原子的参考手册和网络资料,如有侵权,请联系我删除(因为没怎么写过博客,有注明出处,但对版权的具体细节不清楚)1.FSMC*(Flexiable Static Memory Controler)*1)FSMC的应用:以上是STM32官方手册的内容,可以认为,FSMC,是芯片内部专门可以用于读取外部接入的(SRAM,PC卡等)需要并口协议读写的存储器的一个控制器,起到一个连接器(或者是桥)的作用。只要我们按芯片要求将外部SRAM等于GPIO原创 2021-07-23 14:30:32 · 642 阅读 · 0 评论 -
Stm32看门狗(开始于2021-07-19)
Stm32看门狗????1.概述:独立看门狗:喂狗时间必须在0之前,否则计数器下降到0后,产生复位信号;窗口看门狗:喂狗时间必须在CFR寄存器(我们设置的窗口上限),和0x3F(窗口下限)之间(即在CR寄存器的第7位b6*(T6)*减小到零之前),否则(上限之前,或以达下限)均会产生复位信号。喂狗:即重新设置递减计数器CNT的值,也就是手册时序图中的"更新"(CNT).上窗口比较触发: 当我们喂狗时,比较器会将当前(未写入时的)CNT的值与CFR低7位的值进行比较,查看是否超前喂狗.2.独立原创 2021-07-19 11:43:23 · 235 阅读 · 0 评论 -
Stm32定时器笔记(写于2021-07-18)
Stm32定时器笔记因为定时器的内容比较多,所以整理得有些乱,如果有错误的地方,希望大家指正。1.简介:基本定时器:TIM6,TIM7,只有基本功能:累加计数超过预定值请求中断或者触发DMA;通用定时器:(较常使用,主要学习)主要操作几个寄存器控制:TIMx_CNT(CouNter Register计数寄存器),只能累加,向上计数;TIMx_PSC(Prescaler Register预分频寄存器),计数器的最终产生脉冲的时钟频率CK_CNT等于fCKPSCPSC原创 2021-07-18 16:45:13 · 902 阅读 · 0 评论 -
STM32外部EXTI中断笔记(开始于2021-07-13)
STM32外部EXTI中断笔记1.EXTI简介:在STM32上外部中断线共有19个(互联型):其上每个GPIO都可作外部中断输入,供GPIO的外部中断线供有16个(EXTI_Line_x (x=0-15) ),stm32只分配7个中断向量给这16个中断线使用,分别为EXTI 0 / 1 / 2 / 3 /4 / 9_5 / 15_10 IRQHandler(中断服务函数)IRQn(中断通道)。即在NVIC中断向量配置时需要注意:只有7个向量和中断服务函数与GPIO线中断有关。(特别是5-9和10原创 2021-07-13 11:32:43 · 1615 阅读 · 0 评论 -
stm32串口通信笔记(开始于2021-06-29)
stm32串口通信笔记第一篇笔记先从串口开始吧。之前没有作笔记的GPIO,NVIC之后再来补吧。(如果有错误之处,望读者指正)1.主要的寄存器:(鉴于对寄存器的了解不够深入,日后有深入了解时,再将其补全)以下是串口通信配置时常操作的三个寄存器:USART_SR:(state register,状态为寄存器)USART_DR:(data register,数据寄存器)USART_BRR:(baud rate register波特率寄存器)2.主要操作的库函数:1)常用库函数:注意:原创 2021-06-29 16:21:29 · 253 阅读 · 0 评论 -
stm32自学笔记(开始于2021-06-18,希望自己能坚持下去)
自学stm32的博客笔记从现在开始,要正式学习stm32了。之前学51的时候,做的是纸质的笔记,效果不是很好,也不方便(毕竟画时序图的时候好烦啊),打算从现在开始写电脑版的笔记。以博客的形式记录下来,是出于以下的考虑吧:博客记录易于共享,也易于和大佬们交流(毕竟身为刚入门的小白,可能会有很多记录失误的地方,希望能有大佬看到了帮忙指正);博客易于查找,这正是电子笔记的好处(除了平常易于截图做笔记外,另一个好处便在于此——可以通过关键词进行搜索,便于自己日后查找);最后,希望能借此博客督促原创 2021-06-26 09:35:13 · 365 阅读 · 1 评论