STM32

您所在的位置:网站首页 写出初始化设置的流程 STM32

STM32

2024-07-08 23:46:16| 来源: 网络整理| 查看: 265

文章目录 0. **初始化的注意事项(随时补充)**1. **头文件的编写**2. **GPIO的设置以及初始化**3. **NVIC中断设置**4. **USART 初始化设置**5. **时钟的初始化设置**6. **输入捕获通道初始化**

0. 初始化的注意事项(随时补充) 所有的结构体声明必须要放在初始化函数的最前面如果每个初始化有头文件的话,初始化函数要在头文件中事先定义如果使用串口或GPIO口,记得使能时钟,又或是设置中断使用串口记得波特率一定要对!!要非常注意硬件对应的串口或GPIO口的连接关系 1. 头文件的编写

##ifndef__需要驱动的硬件_H ##define__需要驱动的硬件_H #define 需要驱动的硬件 接口 //比如 #define BEEP PBout(8) // BEEP,蜂鸣器接口 初始化函数 //比如 void BEEP_Init(void); //声明初始化函数 宏定义 //比如#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4) //读取按键 0 #endif

2. GPIO的设置以及初始化

GPIO_InitTypeDef GPIO_InitStructure; //创建名为 GPIO_InitStructure初始化结构体

RCC_APB1PeriphClockCmd(各GPIO口对应的时钟|各GPIO口对应时钟,Enable); //使能时钟

GPIO_InitStructure.GPIO_Pin=GPIO_PIN_引脚号; //配置需要使用的引脚

GPIO_IniStructure.GPIO_Mode=GPIO_Mode_模式; //配置引脚模式

GPIO_IniStructure.GPIO_SPEED=GPIO_Speed_速度Mhz; //配置引脚速度

GPIO_Init(要初始化的GPIO口,&GPIO_InitStructure); //初始化引脚所在组

以下两步看具体的情况,比如说led需要先初始化为高电平,让led不亮要用Set函数,或者蜂鸣器低电平关闭,所以需要初始化为低电 平则要用Reset函数

GPIO_ResetBits(GPIO口,GPIO_Pin_引脚号); //设置引脚初始化为0

GPIO_SetBits(GPIO口,GPIO_Pin_引脚号); //设置引脚初始化为1

3. NVIC中断设置 NVIC_InitTypeDef NVIC_InitStructure; //创建名为NVIC_InitStructure的初始化结构体NVIC_InitStructure.NVIC_IRQChannel=串口名_IRQn; //设置中断频道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=优先级; **//设置抢占优先级 **NVIC_InitStructure.NVIC_IRQChannelSubPriority =优先级; ** //设置子优先级**NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; ** //IRQ 通道使能**NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化 VIC 寄存器 4. USART 初始化设置 USART_InitTypeDef USART_InitStructure; //创建名为USART_InitStructure初始化结构体USART_InitStructure.USART_BaudRate=波特率; //设置串口波特率USART_InitStructure.USART_WordLength=USART_WordLength_位数以及进制; //设置字长USART_InitStructure.USART_WordLength=USART_StopBits_位数; //停止位个数USART_InitStructure.USART_Parity = USART_Parity_Yes or No; //是否有奇偶校验位USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None; //无硬件数据流控制USART_InitStructure.USART_Mode = USART_Mode_收发模式; //收发模式USART_Init(USART串口号, &USART_InitStructure); //初始化串口USART_ITConfig(USART串口号, USART_IT_RXNE, Enable); //中断开启USART_Cmd(USART串口号, ENABLE); //使能串口 5. 时钟的初始化设置 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //创建名为TIM_TimeBaseStructure的初始化结构体TIM_TimeBaseStructure.TIM_Period=arr; //设定计数器自动重装值TIM_TimeBaseStructure.TIM_Prescaler=psc; 设定预分频值TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV分频数; //TDTS=TCK_tim,有1,2,4TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_模式; //TIM向上或向下计数模式,Up或DownTIM_TimeBaseStructure.TIM_RepetitionCounter = 0或1; //重复计数设置TIM_TimeBaseInit(时钟,&TIM_TimeBaseStructure);**//根据指定的参数初始化TIMx **TIM_Cmd(TIM定时器号,ENABLE); //使能定时器 6. 输入捕获通道初始化 TIM_ICInitStructure.TIM_Channel=TIM_Channel_频道数; //设定捕获通道TIM_ICInitStructure.TIM_ICFilter=0x00; //配置输入滤波器,可设置滤波器长度,0就是不滤波TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_有效沿边; //设定捕捉有效沿边,Rising,Falling,BothEdgeTIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV分频系数; //设定分频系数,有1,2,4TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI; //选择输入端IC映射到TI上TIM_ICInit(需要使用的TIM, &TIM_ICInitStructure); //完成最后的初始化TIM_ITConfig(TIM定时器号,TIM_IT_Update|TIM_IT_CC1,ENABLE); //允许更新中断捕获中断TIM_Cmd(TIM定时器号,ENABLE); //使能定时器,这句配合上面的时钟初始化后,写在最后,并且时钟初始化不需要写这句


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭