配置过程: 1:初始化GPIO和开启AFIO时钟并且选择好中断引脚 选择中断引脚函数GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);//选择那个引脚为中断引脚 2:初始化NVIC 3:  初始化EXTI  4:MIAN函数调用 注:一定要开启AFIO的时钟不然不会中断,并且若有多个中断,不可以只开一次,(测过只在一个函数里使能AFIO,但只能那个用中断,其他的不可以) NVIC中断函数在MISC里:首先要进行NVIC的组选择,然后配置NVIC的中断源,中断优先级,越小越中断优先级越高,先比较抢占优...

  pbfHt7yP3Hym   2023年11月12日   23   0   0 引脚初始化优先级

M内核都有这定时器(内核自带),比死延时好不会因为中断导致软件卡死; 具体参考Cortex-M3编程手册。 systick是一个24位的递减定时器。 寄存器: CRTL是一个32为的寄存器;其中的第0位为定时器使能,第1位是中断开启(0不开1开) 第2位是时钟源选择(0为APB时钟的8分屏72/8=9。1为AHP的总时钟72M)。第16为是递减完成标志位/为1什么意见定时完成了0不完成/其中时钟源选择可以用SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//选择8分屏。  //SysTick->CTRL REL...

  pbfHt7yP3Hym   2023年11月12日   27   0   0 v8分屏寄存器

注:RS232485的本质还是串口通信只不过是输出电平不同。串口连串口、485、232、就是电源的差分。232串口要R-T T-R并且共地。485不要,485只分A/B. 1:初始化相关GPIO,时钟/收发TXRX具体引脚可以参考手册引脚可以通过AFIO进行重映射 2;初始化串口(用那个初始化那个)/时钟用cmd使能和USART_ITConfig进行中断源选择 3:若需要中断配置NVIC;//NVIC要先调用 注意串口的标志位。 DR=是发 变量=DR是读 USART1->DR=0XFF; A=USART1->DR RXEN:DR寄存器收到数据可以读出&nbsp...

  pbfHt7yP3Hym   2023年11月12日   20   0   0 #include初始化串口

STM32的ADC是12位的,且采样时钟速度不能超过14M. 单独使用AD: 1:初始化相关GPIO,(看手册的ADC引脚配置) 2:初始化ADC 3;配置采样时钟 函数:RCC_ADCCLKConfig(RCC_PCLK2_Div8);//采样时钟最大14M时钟 4:ADC通道选择 函数:ADC_RegularChannelConfig();ADC几/通道几/转换顺序/采样频率 5:ADC_CMD 6:进行ADC效准  ADC_ResetCalibration(ADC1);//初始化效准寄存器,ADC效验初始化   while(ADC_GetResetCalib...

  pbfHt7yP3Hym   2023年11月12日   61   0   0 初始化ADC_DMAIT数据

GPIO的使用: 1;开启相关GPIO的时钟 2;初始化相关GPIO的配置,IO引脚的模式,引脚选择,输出速率 3;查看相关硬件,看是高电平驱动外设,还是低电平; 程序: 初始化函数: include"rgb_drive.h" voidrgb_init(void) {GPIO_InitTypeDefRGB_GPIO_InitStruct;//GPIO结构体名称 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//开启GPIOB的时钟 RGB_GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//GP...

  pbfHt7yP3Hym   2023年11月02日   51   0   0 初始化#define#endif

使用步骤 1;开启相关IO时钟 2;初始化相关IO的模式  //模拟输入浮空上/下拉 3;配置函数的初始化调用和用GPIO_ReadInputDataBit();函数来获取IO状态 配置 include"key.h"//引脚PA0PC13 voidkey_init(void) {GPIO_InitTypeDefkey1_GPIO_InitStruct;//按键1GPIO结构体名称 GPIO_InitTypeDefkey2_GPIO_InitStruct;//按键1GPIO结构体名称 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,E...

  pbfHt7yP3Hym   2023年11月02日   48   0   0 引脚初始化#define

主要是看公式: 外设:((uint32_t)(0x42000000+(外设寄存器地址ODR/IDR-)84+n4) 外设寄存器地址可参考手册地址和偏移位 srom:((uint32_t)(0x22000000+(外设寄存器地址ODR/IDR)84+n4) 综合: AliasAddr=((A&0xF0000000)+0x02000000+((A&0x00FFFFFF)<<5)+(n<<2)) A:外设寄存器地址 n:想要操作的位号 设计代码:参考野火的代码 //defineMEM_ADDR(addr) ((volatileunsignedlo...

  pbfHt7yP3Hym   2023年11月02日   62   0   0 #define寄存器

DAM能快速的搬运数据并且不影响程序的运行,处理外设数据比str函数要好,str相关函数还是占时间的 DMA外设通道选择:具体看手册M-M那个通到都可以; 确实DMA只要确定好这3个配置就好了 1:外设地址 DMA_PeripheralBaseAddr 2:存储器地址 DMA_MemoryBaseAddr 3;方向 DIR 主要是方向,决定了数据是从外设到存储器还是存储器到外设  //方向 D1存储器到外设S0外设到存储器 SRC   DTR SRC就是DMA_PeripheralBaseAddr的数据...

  pbfHt7yP3Hym   2023年11月02日   48   0   0 串口DMA数据自增

定时器时间计算:定时器时钟/分频/PER/ARR=频率。时间=1/频率 若用定时器的PWM控制步进电机驱动器,则要看相关电机的驱动频率,然后开启中断选择CCx做为中断源(定时器的计时器和比较去比),进入一次中断就说明发了一次脉冲。 1:开启成功定时器的时钟。 2:初始化定时器(部分参数只有高级定时器才有/基本定时器只能CNT加计时,不可以减) 3:配置相关定时器的中断NVIC 4:开启定时器中断; 5:CMD定时器:就开始定时了。定时时间看第一句 进入中断后,记得清除中断标志位哇。 配置: / 函数名:voidtime2_init(void) 功能:初始化定时器2 形参: / voidtime...

  pbfHt7yP3Hym   2023年11月02日   61   0   0 定时器系统时钟初始化IT

个人估计理解这个图片就差不多明白PWM了。用定时器的加减也一样 使用PWM的时候要看PWM的相关IO引脚。CH1-CH4对应OC配置的OC1-OC4 频率计算可以看前面的定时器文章。 PWM配置过程: 1:初始化相关的PWM引脚 2:初始化配置定时器   TIM_TimeBaseInit(TIM3,&TIM3_TimeBaseInitStruct); 3:配置OC  TIM_OC3Init(TIM3,&TIM3_OCInitStruct);这个要看相关引脚 4:开启定时器就可以了。CMD 配置占空比函数:TIM_SetComp...

  pbfHt7yP3Hym   2023年11月02日   52   0   0 引脚初始化STM32 PWM寄存器

高级定时器和基本定时器通用定时器有较大区别。 基本定时器就只能进行定时操作。且CNT只能加。 基本定时器能进行定时,PWM的生产,输入捕获啥的 高级定时器能定时/PWM。输入捕获,输出互补和死区刹车的生产。 高级定时器定时器1有4个中断函数/含中断源。 中断源: TIM1_BRK_IRQn //打破中断      =24,  /!<TIM1BreakInterru  TIM1_UP_IRQn 更新中断//定时     &...

  pbfHt7yP3Hym   2023年11月02日   58   0   0 定时器初始化触发器IT
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~