自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 stm32f407之通用定时器产生PWM波

1.初始化1.定义相关变量GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;TIM_OCInitTypeDef TIM_OCInitStructure;2.打开定时器和GPIO时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14, ENABLE);RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,

2021-09-21 18:22:24 1703

原创 stm32f407之定时器中断使用流程

1.初始化1.定义相关变量TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;2.打开定时器时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);3.定时器寄存器配置TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_

2021-09-21 17:53:50 3462

原创 stm32f407之窗口看门狗使用流程

1.初始化1.声明中断变量NVIC_InitTypeDef NVIC_InitStructure;2.打开WWDG时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);3.设置预分频器分频WWDG_SetPrescaler(fprer);4.设置窗口值WWDG_SetWindowValue(wr);5.喂狗WWDG_SetCounter(WWDG_CNT);6.中断配置NVIC_InitStructure.NVIC_IR

2021-09-21 17:48:59 667

原创 stm32f407之独立看门狗使用流程

1.初始化1.钥匙解锁IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);2.预分频器分频IWDG_SetPrescaler(prer);3.设置自动重装值IWDG_SetReload(rlr);4.初次喂狗IWDG_ReloadCounter(); //reload5.看门狗使能IWDG_Enable();2.看门之间计算时钟频率为32khz分频后的频率为f=32k/prer周期为T=prer/32k设置自动重装值后的看门时间为

2021-09-21 17:38:15 792

原创 stm32f407之外部中断使用流程

1.初始化1.初始化相关结构体NVIC_InitTypeDef NVIC_InitStructure;EXTI_InitTypeDef EXTI_InitStructure;2.打开SYSCFGSYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);3.配置EXTIEXTI_InitStructure.EXTI_Line = EXTI_Line0;EXTI_InitStructure.EXTI_LineCmd = ENAB

2021-09-21 17:31:56 340

原创 stm32f407串口通信使用流程

初始化1.定义初始化变量GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;2.使能时钟GPIO开启AHB1时钟USART1开启APB2时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //使能GPIOA时钟RCC_APB2PeriphClockCmd(RCC_A

2021-09-21 17:23:09 815

原创 stm32f407按键输入函数

unsigned char KEY_Scan(unsigned char mode){ static unsigned char key_release = 1; if(mode) key_release = 1; if(key_release && (1 == KEY0 || 1 == KEY1)) { delay_ms(10); key_release = 0; if(1 == KEY0) return 1; else if(1 == KEY1) r

2021-09-21 09:05:59 408

原创 stm32f407 GPIO使用基本流程

1.定义GPIO初始化结构体GPIO_InitTypeDef GPIO_InitStructure;2.打开GPIO时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);3.GPIO具体寄存器配置 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStruc

2021-09-21 08:59:24 2812

原创 stm32f407时钟系统

IWDG:内部32kHzRTC:内部32kHz、外部32.768kHz、HSE8Mhz分频PLL配置:M=8,N=336,P=2,Q=7.SYSCLK选用PLL倍频的P,PLLCLK输出168MhzAHB PRESC不分频输出168MhzAPB1 4分频为42Mhz APB1定时器84MhzAPB2 2分频为84Mhz APB2定时器168Mhz...

2021-09-21 08:42:36 732

原创 windows环境下饥荒专用服务器开服方法

1. 创建新世界 保存退出房间名 mod设置一下 生成世界保存退出2. 创建并复制专属token到存档里点账号 再点游戏(可能要加速器)点游戏服务器起名字 生成token复制此token 保存待用打开刚刚创建的存档目录 替换cluster_token.txt里的内容为刚刚保存的token信息,然后保存退出,记住存档名字,我这里是Cluster_83.下载官方开服工具把工具一栏勾选并下载Don’t Starve Together Dedicated Server下载完成

2021-08-16 18:22:33 4771 4

原创 电子设计从零开始(1)

二极管单向导电性硅管导通电压为0.7V 反向电阻为1KOm锗管 为0.15V 反向电阻为4-8KOm二极管的伏安特性反向击穿电压硅管大约1000V 锗管大约100V技术文档中有什么型号 主要特性 封装及外观 极限参数二极管只需要一个小小的正向电压即可以导通,导通以后的二极管相当于一个导体三极管是PNP还是NPN1.要百度 找技术文档2.万用表测三极管直流放大倍数为100-1000区间内三极管的直流放大特性只要谈起三极管就要想到“电流放大”三

2020-07-09 20:43:05 732

原创 Stm32之配置WWDG流程

看门狗初始化void WWDG_Init(u8 tr, u8wr, u8 fprer)RCC->APB1ENR |= 1 << 11; //使能wwdg时钟WWDG->CFR |= fprer << 7; //PCLK1 / 4096 再除2^fprerWWDG->CFR &= 0xff80;WWDG->CFR |= wr; //设...

2020-04-08 17:05:05 936

原创 stm32设置独立看门狗流程

1.向IWDF_KR写入0x5555去除IWDG_PR IWDG_RLR写保护IWDG->KR=0x5555;2.写入IWDG_PR IWDG_RLRIWDG->PR=prer;IWDG->RLR = rlr;3.向IWDG_KR写入0xaaaaIWDG->KR=0xaaaa;4.向IWDG_KR写入0xccccIWDG->KR=0xcccc;...

2020-04-06 15:58:38 436

原创 stm32之CAN配置流程

一.CAN初始化(以初始化CAN1为例)(注:几个参数)tsjw:重新同步跳跃单元tbs2:时间段2的时间单元tbs1:时间段1的时间单元brp:波特率分频器mode:模式1.使能相应的PORT时钟RCC->APB2ENR |= 1 << 2; //使能PORTA时钟2.配置端口输出模式GPIOA->CRH &= 0xfff00fff;GPI...

2020-03-23 16:57:43 6637 1

原创 stm32ADC单次转换

ADC1通道1初始化1.使能相应的PORT时钟,并设置模拟输入模式,adc1时钟RCC->APB2ENR|=1<<2; GPIOA->CRL&=0XFFFFFF0F;RCC->APB2ENR|=1<<9;2.复位ADC1RCC->APB2RSTR|=1<<9; RCC->APB2RSTR&=~(...

2020-03-19 17:36:21 850

原创 stm32定时器输出PWM流程讲解

0.在讲流程之前,先来看一下PWM的原理。PWM是对IO口的高低电平的占空比进行不同比例的分配。先假定设定的IO口为A0,stm32在任意时刻会讲CCR1(通道1的比较/捕获寄存器)与CNT的值进行比较,比较出不同的大小会想PA0输出不同的电平,相关设置在CCMR寄存器中设置。1.使能TIMx与相应PORT的时钟EN TIMx:RCC->APB1ENR |= 1 << ...

2020-03-16 20:23:17 1839

原创 stm32使用通用定时器中断的一般流程

(注:文中的x为数字)初始化1.TIMx的外设时钟使能RCC->APB1ENR |= 1 << n;2.设定ARR寄存器(计时器自动重装值)TIMx->ARR = arr;3.设定预分频器的值在设定预分频器的值之前,先理解这里的预分频器与时钟系统里的APB1外设的PPRE1不同(由于原子的SYSTEM中时钟初始化函数将PPRE1设为非1,所以外设定时器的时钟就...

2020-03-16 17:13:01 2659 1

原创 设置中断流程

中断分组设置1.往SCB->AIRCR寄存器中写入分组信息,注意要写入钥匙0x05fa0000 | 分组号具体中断配置(建议写成函数,参数为抢占优先级,响应优先级,在向量表中的名字,分组)1.设置分组(和上一段一样)2.将优先级组合成4位3.使能中断位///****NVIC->ISER[名/32] = (1 << 名 % 32)由于中断函数的名字在库里映射成...

2020-03-16 16:45:01 1643

原创 stm32中断设置(寄存器讲解)

与51对比对比51来说,51的中断就那么几个,但中断的分类大体都差不多,分为内部中断和外部中断。51的内部中断是定时器中断,串口中断,外部中断是外部中断0和1.而stm32的中断就比51多太多了,引脚多,内部资源多,所以拥有19个外部中断(包含16个GPIO中断和3个外部特定中断)和40余个内部中断(包括定时器中断,32的定时器有3大类,共多达10余个,还有32上丰富的内部资源,包括UA...

2020-03-16 16:44:09 4274

原创 stm32串口通信流程

初始化1.计算波特率,公式 = (pclk2 * 1000000) / (bound * 16);pclk2为APB2外设时钟,bound为波特率如9600(注意有4位小数部分)2.使能串口所在的PORT时钟与串口时钟,PORT用来接收发送数据,串口用来处理,相当于一个是门,一个是内部的接收。(RCC->APB2ENR)3.将串口对应的IO口初始化为响应的输入模式(手册P.110)。...

2020-03-14 15:30:46 3537

原创 Stm32_Clock_Init()解析

原子的第一个例程流水灯中用了 Stm32_Clock_Init()函数,现在来解析一下:引用时Stm32_Clock_Init(9);定义(此处省略了跑OS时的代码)看程序前,请确保理解了这个时钟树(并对RCC寄存器组有了解)void Stm32_Clock_Init(unsigned char PLL){ unsigned char temp = 0; MYRCC_DeInit(...

2020-03-11 19:27:25 7792

原创 关于Proteus仿真stm32时出现电源与地对接错误的解决方案

最近开始了stm32的学习,但发现在Proteus仿真时总是出现PROTEUS显示电路图如下:经过一段时间的研究,除了之前的要将Design->Configure Power Rails中的VSSA与VSS和VDDA都添加进来,还得设置电源为+(合适的大小),最终效果如图:...

2020-03-08 10:38:27 8040 7

原创 C语言文件输入输出应注意的问题

一、fread与fwrite:1、两者怎么匹配:首先讲一下fread的返回值,其返回的是实际读取的数据块(从上一次fp文件流的位置到本次文件流的位置间隔的数据块)的数目。也就是说size_t fread( void *restrict buffer, size_t size, size_t count,FILE *restrict stream );返回的不是读取的数据大小(realsize...

2019-12-01 08:22:07 784

原创 sizeof关键字(运算符)

sizeof的作用:1.计算某个类型的字节大小:比如sizeof(int)、sizeof(double)其值取决于计算机具体实现(一般):注意(当sizeof用于结构体(含非数组成员)时):struct book1{double value;int index;char in;};struct book2{double value;int index;};当size...

2019-11-30 08:23:37 439

原创 个人消费记录

大致写了,购物,出行,学习消费等输入输出模块,以及 简单的分析收支情况分了一个头文件5个源文件(还是比较简陋的)下面是代码:头文件://123.h#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#define SIZE 139...

2019-11-26 08:15:59 505

空空如也

空空如也

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

TA关注的人

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