STM32推挽模式:_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
这种模式用的情况还是比较多的,但是有个注意的地方,不是所有情况都适用于推挽模式,比如当外部有外加上拉电阻时,若使用这种模式,无论输出什么电平,外部IO一直位高电平
特别是有几个引脚连接到了仿真器接口,一般是有上拉的,在测试时要注意这几个IO口
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
关键字:STM32 GPIO 推挽模式
引用地址:
STM32GPIO推挽模式注意
推荐阅读最新更新时间:2024-03-16 16:07
STM32高级定时器那些事
首先说下我使用飞、高级定时器的一些坑爹经历,由于开始高级定时器使用不当,造成有如下问题: 1、PWM输出占空比反向(这个也还能接受点) 2、程序烧进去了就不能烧第二次了,下载时候提示如下图(这个够坑爹的了) 错误而提示 仔细看提示信息说是CPU一直在复位,解决的方法是通过出厂IAP用串口擦除芯片程序。需要准备的工作是:USB转串口工具、把BOOT0拉高、使用ISPMCU擦除芯片。 3、从外部flash读取出来的图片不能够正常显示,屏幕显示的是黑色,后来发现是因为SPI1的I/O与TIM8的N通道冲突了。(由此我下决心要找到问题的原因) 通过一番搜寻和查看相关资料,发现造成上述原因是因为我对高级定时器初始化的时候漏掉了部分成员
[单片机]
嵌入式系统学习——STM32之外部中断
STM32与51相比,多了很多资源,其中外部中断就是被扩展了很多。51的外部中断只有2个,但是STM32不是,STM32的每个IO都可以作为外部中断输入。 STM32的中断控制器支持19个外部中断/事件请求: 线0~15:对应外部IO口的输入中断。 线16:连接到PVD输出。 线17:连接到RTC闹钟事件。 线18:连接到USB唤醒事件。 每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。 IO口外部中断在中断向量表中只分配了7个中断向量,也就是只能使用7个中断服务函数: 从表中可以看出,外部中断线5~9分配一个中断向量,共用一个服务函数,外部中断线10~15分配一个中
[单片机]
增量式PID的stm32实现,整定过程
首先说说增量式PID的公式,这个关系到MCU算法公式的书写,实际上两个公式的写法是同一个公式变换来得,不同的是系数的差异。 资料上比较多的是: 还有一种是: 感觉第二种的Kp Ki Kd比较清楚,更好理解,下面介绍的就以第二种来吧。(比例、积分、微分三个环节的作用这里就详细展开,百度会有很多) 硬件部分: 控制系统的控制对象是4个空心杯直流电机,电机带光电编码器,可以反馈转速大小的波形。电机驱动模块是普通的L298N模块。 芯片型号,STM32F103ZET6 软件部分: PWM输出:TIM3,可以直接输出4路不通占空比的PWM波 PWM捕获:STM32除了TIM6 TIM7其余的都有捕获功能,使用TIM1 TIM2 TIM
[单片机]
STM32学习笔记-定时器中断
如果我们想要去每隔一段时间去做一件事,或者说特定的时间去做某件事,但是我们所有的精力不能放在计时上,我们有主要的事情要做,但是我们还必须每隔一段时间就要做另外一件事.我们就必须找一个可以计时的东西,它的工作就是每隔特定的时间告诉我们一声.这样,我们既可以做那个主要的事,每隔一段时间需要做的事也可以做,这个计时的东西就是定时器. 与配置io口类似,定时器的初始化也是给一个结构体变量赋值,把参数传送给初始化函数. 下面是定时器3初始化的一个例子 void tim3(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClock
[单片机]
STM32的AD9854 DDS模块调试总结
DDS基本原理和特点 1、DDS基本原理 直接频率合成技术实际上是通过将存储的波形数据,通过特定算法,经过高速D/A转换器转换成所需要模拟信号的数字合成技术。其基本原理框图如图1所示。 由图1可见,其主要由标准参考频率源、相位累加器、波形存储器、数/模转换器等部分组成。其中,参考频率源一般是一个高稳定的晶体振荡器,其输出信号用于DDS中各部件同步工作。当频率合成器正常工作时,在标准频率参考源的控制下(频率控制字K决定了其相位增量),相位累加器则不断地对该相位增量进行线性累加,当相位累加器积满量时就会产生一次溢出,从而完成一个周期性的动作,即合成信号的一个频率周期。累加器的输出地址对波形ROM进行寻址,从而把存
[单片机]
【STM32学习笔记】SPI不够用? USART来帮忙
如果您在使用STM32的时候,恰好缺少一个SPI接口,同时片上的资源还有多余的USART(一般来说,USART的接口都较丰富,比如STM32L0系列的产品),我们完全可以 用USART来替代SPI ,效果非常不错。 本文将向大家介绍 如何把USART当做SPI来用 。 USART是指全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。那么, 它与UART有什么区别呢?它的硬件连接方式是怎样的?该如何使能USART的SPI模式?把USART当做SPI来使用的时候和标准的SPI有什么区别,需要注意哪些事项? 本文将逐一为大家解读。 UART与USART的区别 早期在开发8051的时候使用的都是UART
[单片机]
STM32的定时器--输入捕捉模式
调试STM32的定时器好几天了,也算是对STM32的定时器有了点清楚的认识了。我需要测量4路信号的频率然后通过DMA将信号的频率传输到存储器区域,手册说的很明白每个定时器有4个独立通道。然后我就想能不能将这4路信号都连接到一个定时器的4个通道上去。理论上应该是行的通的。刚开始俺使用的是TIM2的1 2 3通道,TIM4的2通道来进行频率的测量。由于没有频率发生器,所以我用tim3作为信号源,用TIM2,TIM4来进行测量就ok了。 请看一开始的程序,以TIM2的1,3通道为例子: TIM_ICInitStructure.TIM_ICMode = TIM_ICMode_ICAP; //配置为输入捕
[单片机]
cortex M3S811学习笔记-GPIO-INT
首先是通用IO口,不管学什么单片机,IO口都是最重要和最好学的。重要是因为他是单片机与处围器件的接口,同样也是我们通常所说的人机接口,好学是因为它的控制容易,无非就是使能端口,设方向,然后就是写数据或是读数据了(根据你设的方向而定),这款超强的arm核的32位的小东西的IO口也有不同之处,毕竟是ARM核,IO的寄存器也丰富了不少。下面就来看看与IO口有关的函数。 1.按顺序来,先使能IO口。只有使能了他才能用,所以当然是第一步了。 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA) 这就是使能A端口函数,即A端口可以用了,他的大门向你敞开了 。 A端口不是在物理特征上有6个脚吗?GPIOA就
[单片机]