![](https://img-blog.csdnimg.cn/f7d20d908f3b4ae49d87e8af001134d6.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
嵌入式(ARM---基于stm32)
嵌入式(ARM---基于stm32)
Enoch0813
Why not U? I'm possible
maybe not today,maybe not tomorrow...
展开
-
嵌入式stm32 复习(工作用)--- GPIO位操作基础知识 2020.5.17
1.位操作就是单独的对一个比特位进行读或者写操作,这个在51单片机中非常常见,51单片机通过关键字sbit来实现位定义,但是我们在cortex-m芯片中没有关键字这个操作,例如stm32f4xx系列。2.在f4系列中,有两个地方实现了位带。一个是SRAM区的最低1MB空间,另一个就是外设区的最低1MB空间。同时需要特别注意,如果想要实现对这两个空间的访问,就必须先访问其对应空间的别名区域,也就是这两个位带区都有自己的位带别名区,位带别名区把这两个1MB空间的每一个比特位都膨胀成32位的字,但是膨胀之后的3原创 2020-05-17 13:05:39 · 1055 阅读 · 0 评论 -
教你手写窗口看门狗(看完这篇你就会手动写啦,保姆级讲解)---- 2020.4.30
关于窗口看门狗基础知识方面的文章:嵌入式stm32 复习(工作用)— 窗口看门狗知识 2020.4.30添加链接描述先上完整窗口看门狗部分代码!!!#include "wwdg.h"u8 WWDG_T = 0;void WWDG_Init(u8 tr, u8 wr, u8 psc) { WWDG_T = tr & 0x7F; RCC->APB1ENR |= 1...原创 2020-04-30 11:31:39 · 470 阅读 · 1 评论 -
嵌入式stm32 复习(工作用)--- 窗口看门狗知识 2020.4.30
引言继续来更新嵌入式这个系列,再说一遍,这个系列我一般都会使用寄存器来编写,具体原因:一、相比于库函数来说寄存器比较难编写,得具体根据芯片手册来编写。二、能够通过寄存器的形式来让大家更加的清楚每一行代码为什么要写成这个值,具体是怎样编写的。原理部分:1.上一篇我们讲述了关于独立看门狗的相关知识点,那为什么还会有另一个看门狗呢?,那么我们就需要了解独立看门狗和窗口看门狗的区别了。时钟源...原创 2020-04-30 11:02:32 · 314 阅读 · 0 评论 -
教你手写独立看门狗(看完这篇你就会手动写啦,保姆级讲解)---- 2020.4.30
关于独立看门狗基础知识方面的文章:嵌入式stm32 复习(工作用)— 独立看门狗知识 2020.4.30添加链接描述先上完整独立看门狗部分代码!!!#include "iwdg.h"void IWDG_Init(u16 arr, u8 psc) { IWDG->KR=0x5555; IWDG->PR=psc; IWDG->RLR=arr; IWDG_...原创 2020-04-30 10:47:32 · 762 阅读 · 0 评论 -
嵌入式stm32 复习(工作用)--- 独立看门狗知识 2020.4.30
引言继续来更新嵌入式这个系列,再说一遍,这个系列我一般都会使用寄存器来编写,具体原因:一、相比于库函数来说寄存器比较难编写,得具体根据芯片手册来编写。二、能够通过寄存器的形式来让大家更加的清楚每一行代码为什么要写成这个值,具体是怎样编写的。原理部分:...原创 2020-04-30 10:29:50 · 355 阅读 · 0 评论 -
STM32F4xx 自举模式讲解---- 2020.4.23
知识点://借助总线矩阵,可以实现主控总线到被控总线的访问,这样即使在多个高速外设同时运行期间,系统也可以实现并发访问和高效运行。//也就相当于区域1是可以通过如上图所示的方阵来访问区域二的数据,并且可以在其对应的空间中进行相应的操作。//举个例子:I总线只能通过如上图所示的总线矩阵来访问FLASH、FSMC。2.存储器结构:程序存储器、数据存储器、寄存器和 I/O 端口排列在同一...原创 2020-04-23 23:30:14 · 2413 阅读 · 0 评论 -
教你手写PWM输出(看完这篇你就会手动写啦,保姆级讲解)---- 2020.4.6
关于PWM输出原理方面的文章:嵌入式stm32 复习(工作用)— PWM输出知识 2020.4.6添加链接描述教你手写定时器精准延时(看完这篇你就会手动写啦,保姆级讲解)---- 2020.2.27添加链接描述先上完整PWM输出部分代码!!!/** * @brief PWM 初始化,是使用TIM3_CH2(映射到PB5),产生PWM实现呼吸灯效果 * @param arr:...原创 2020-04-06 22:27:55 · 1662 阅读 · 0 评论 -
嵌入式stm32 复习(工作用)--- PWM输出知识 2020.4.6
引言继续来更新嵌入式这个系列,再说一遍,这个系列我一般都会使用寄存器来编写,具体原因:一、相比于库函数来说寄存器比较难编写,得具体根据芯片手册来编写。二、能够通过寄存器的形式来让大家更加的清楚每一行代码为什么要写成这个值,具体是怎样编写的。原理部分:1.//从上图中我们可以知道ARR寄存器决定于周期T。//CCRx寄存器决定于占空比α。2.在TIMx_CCMRx寄存器中的OCxM位写...原创 2020-04-06 21:42:28 · 371 阅读 · 0 评论 -
教你手写DMA传输数据(看完这篇你就会手动写啦,保姆级讲解)---- 2020.3.31
先上完整DMA串口收发部分代码!!!#define CR1_OVER8_Set ((u16)0x8000) /* USART OVER8 mode Enable Mask */void USART_DMA_Init(void) { //1.开启时钟 RCC->AHBENR |= 1 << 0;//DMA1时钟 //2.配置DMA DMA...原创 2020-03-31 16:08:01 · 2292 阅读 · 0 评论 -
嵌入式stm32 复习(工作用)--- DMA控制器知识 2020.3.30
引言继续来更新嵌入式这个系列,再说一遍,这个系列我一般都会使用寄存器来编写,具体原因:一、相比于库函数来说寄存器比较难编写,得具体根据芯片手册来编写。二、能够通过寄存器的形式来让大家更加的清楚每一行代码为什么要写成这个值,具体是怎样编写的。...原创 2020-03-30 11:49:29 · 324 阅读 · 0 评论 -
教你手写串口收发数据(看完这篇你就会手动写啦,保姆级讲解)---- 2020.3.28
关于串口通信原理方面的文章:嵌入式stm32 复习(工作用)— USART(串口)通信原理知识 2020.3.23添加链接描述先上完整串口收发部分代码!!!#include "usart1.h"#include "stdio.h"#include "string.h"#define CR1_OVER8_Set ((u16)0x8000) u16 USA...原创 2020-03-28 19:00:37 · 4426 阅读 · 3 评论 -
教你手写滴答定时器(看完这篇你就会手动写啦,保姆级讲解)---- 2020.3.25
先上完整滴答定时器部分代码!!!EXTI.c部分#include "ext.h"#define SYSTICK_E 9/** * @brief 用于SysTick初始化 * @param None * @retval None */void TICK_Init(void){ //1.设置SysTick的时钟频率 SysTick->CTRL&=~...原创 2020-03-25 18:04:08 · 1399 阅读 · 0 评论 -
嵌入式stm32 复习(工作用)--- USART(串口)通信原理知识 2020.3.23
引言继续来更新嵌入式这个系列,再说一遍,这个系列我一般都会使用寄存器来编写,具体原因:一、相比于库函数来说寄存器比较难编写,得具体根据芯片手册来编写。二、能够通过寄存器的形式来让大家更加的清楚每一行代码为什么要写成这个值,具体是怎样编写的。原理部分:1.常见的串行通信接口:2.RXD:数据输入引脚,数据接收。3.TXD:数据发送引脚,数据发送。4.在单片机与外设(例如PC机)时,...原创 2020-03-23 16:18:20 · 817 阅读 · 0 评论 -
教你手写外部中断(看完这篇你就会手动写啦,保姆级讲解)---- 2020.3.19
关于外部中断原理方面的文章:嵌入式stm32 复习(工作用)— 外部中断原理知识 2020.3.19添加链接描述先上完整外部中断部分代码!!!EXTI.c部分#include "key.h"#include "led.h"void KEY_EXTI_Init(void){ RCC->APB2ENR|=1<<2; GPIOA->CRL|=1<&...原创 2020-03-19 20:07:51 · 445 阅读 · 0 评论 -
嵌入式stm32 复习(工作用)--- 外部中断原理知识 2020.3.19
引言继续来更新嵌入式这个系列,再说一遍,这个系列我一般都会使用寄存器来编写,具体原因:一、相比于库函数来说寄存器比较难编写,得具体根据芯片手册来编写。二、能够通过寄存器的形式来让大家更加的清楚每一行代码为什么要写成这个值,具体是怎样编写的。原理部分:1.首先先问大家一个问题:我们大家应该都用过一款惯性传感器:MPU-6050/MPU6500,那么大家有没有注意到除了用到IIC协议的VC...原创 2020-03-19 18:30:11 · 631 阅读 · 0 评论 -
教你手写SPI与FLASH通讯(看完这篇你就会手动写啦,保姆级讲解)---- 2020.3.13
写这篇文章足足肝了我一天时间!!!,不过还算是有点收获,希望这篇文章能够帮助你!!!关于SPI协议原理方面的文章嵌入式stm32 复习(工作用)— SPI协议原理知识 2020.3.12添加链接描述先上完整SPI与FLASH通讯部分代码!!!SPI.c部分#include "spi2.h"/** * @brief SPI硬件初始化 * @param None * @ret...原创 2020-03-13 16:54:49 · 2985 阅读 · 1 评论 -
嵌入式stm32 复习(工作用)--- SPI协议原理知识 2020.3.12
引言继续来更新嵌入式这个系列,再说一遍,这个系列我一般都会使用寄存器来编写,具体原因:一、相比于库函数来说寄存器比较难编写,得具体根据芯片手册来编写。二、能够通过寄存器的形式来让大家更加的清楚每一行代码为什么要写成这个值,具体是怎样编写的。原理部分:1.串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置成主模式,并为外部从设备提供通信时钟(SCK)...原创 2020-03-12 11:36:20 · 466 阅读 · 0 评论 -
教你手写定时器精准延时(看完这篇你就会手动写啦,保姆级讲解)---- 2020.2.27
关于定时器精准延时原理方面的文章嵌入式stm32 复习(工作用)—定时器精准延时 原理知识 2020.2.27添加链接描述先上完整定时器精准延时部分代码!!!void TIM2_Init(u16 arr,u16 psc){ RCC->APB1ENR|=1<<0; TIM2->CR1|=1<<0; TIM2->PSC=psc-1; ...原创 2020-02-27 21:51:54 · 1178 阅读 · 0 评论 -
嵌入式stm32 复习(工作用)---定时器精准延时 原理知识 2020.2.27
引言继续来更新嵌入式这个系列,再说一遍,这个系列我一般都会使用寄存器来编写,具体原因:一、相比于库函数来说寄存器比较难编写,得具体根据芯片手册来编写。二、能够通过寄存器的形式来让大家更加的清楚每一行代码为什么要写成这个值,具体是怎样编写的。原理部分:1.stm32有三种定时器:通用定时器(TIMx)、基本定时器(TIM6和TIM7)、高级控制定时器(TIM1和TIM8),其中我们一般用到...原创 2020-02-27 17:29:44 · 709 阅读 · 0 评论 -
教你手写IIC协议(看完这篇你就会手动写啦,保姆级讲解)---- 2020.2.20
前几篇关于IIC协议理论方面的文章1.嵌入式stm32 复习(工作用)—IIC通讯协议 原理部分 2020.2.16添加链接描述2.嵌入式stm32 复习(工作用)—手写IIC协议之前应该掌握知识点 2020.2.19添加链接描述先上完整模拟iic代码,基本上复制粘贴就能用!!!iic.c文件#include "iic.h"#define SDA_IN() {GPIOB->...原创 2020-02-20 14:48:17 · 4631 阅读 · 0 评论 -
嵌入式stm32 复习(工作用)---手写IIC协议之前应该掌握知识点 2020.2.19
引言在上一篇关于IIC协议的文章当中我们讲解了关于IIC协议的几个知识点,但是仅仅局限于理论层面,我们最终应通过代码的形式来实现IIC协议。所以这篇是为了手写IIC协议所用的,基本上掌握了以下所列举的几个知识点,手写IIC协议应该不成问题。并且在接下来的IIC文章中我会专门分别写出库函数版本的和寄存器版本的关于IIC协议的文章,而且会详细注释,敬请期待!!!需要掌握的几个知识点(特别容易踩的坑...原创 2020-02-19 11:11:05 · 1419 阅读 · 0 评论 -
嵌入式stm32 复习(工作用)---IIC通讯协议 原理部分 2020.2.16
看完下面这篇文章,你应该就能懂IIC的原理了!!!为什么要复习IIC通讯协议?1.在单片机普遍使用的当下,我们大部分人用这些协议(iic,spi,can等)时,刚开始只是只知其表不知其里,只是达到会使用这个的程度,用完之后如果没有整理则过段时间就会忘掉,所以写这篇文章达到回顾知识,巩固基础的作用。2.也是为了即将到来的嵌入式相关方向的面试提前做准备。废话不多说,接下来开始系统的认识这个并不...原创 2020-02-16 12:04:05 · 950 阅读 · 0 评论