发 帖  
原厂入驻New

[经验] 电子小白:电机控制方波,GPIO基础配置及初始化(连载)

6 天前  209 GPIO 电机控制
分享
4
GPIO库函数:


GPIO初始化:
typedef struct
{
u16 GPIO_Pin;   //选择待设置的GPIO管脚,使用操作符“|”可以一次选中多个管脚
GPIOSpeed_TypeDef GPIO_Speed;   //10MHz 、2MHz、 50MHz
GPIOMode_TypeDef GPIO_Mode;  //输入输出的8种方式
} GPIO_InitTypeDef;

GPIO的缺省初始化值:
GPIO_Pin = GPIO_Pin_All ;
GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Mode = GPIO_Mode_IN_FLOAtiNG

GPIO的输入输出模式:
(1)GPIO_Mode_AIN 模拟输入  应用ADC模拟输入,或者低功耗下省电
(2)GPIO_Mode_IN_FLOATING 浮空输入  浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定
(3)GPIO_Mode_IPD 下拉输入 IO内部上拉电阻输入
(4)GPIO_Mode_IPU 上拉输入  IO内部下拉电阻输入
   (5)GPIO_Mode_Out_OD 开漏输出 开漏输出就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电源电压。这种方式适合在连接的外设电压比单片机电压低的时候
(6)GPIO_Mode_Out_PP 推挽输出  IO输出0-接 GND, IO输出1 -接 VCC,读输入值是未知的
(7)GPIO_Mode_AF_OD 复用开漏输出 片内外设功能(TX1, MOSI, MISO. SCK. SS)
(8)GPIO_Mode_AF_PP 复用推挽输出  片内外设功能(I2C 的 SCL, SDA)

通常有5种方式使用某个引脚功能,它们的配置方式如下:

1)作为普通GPIO输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。

2)作为普通GPIO输出:根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块。

3)作为普通模拟输入:配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。

4)作为内置外设的输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块。

5)作为内置外设的输出:根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所有复用功能模块。

直接由STM32控制电机运动
主要完成工作:
1、配置keil 5 的mdk环境
2、安装st-link 驱动,更新驱动
3、分别运行4种方波程序控制电机运动,通过控制按钮开关或者电位器变化来对电机进行速度以及方向的调控   
板子及电机运行中:


4、对“方波无霍尔调速、换向(加电流电压、保护)(3功能键)(电位计调速)”程序进行初步的了解

主要存在的问题:mdk版本问题导致程序用stm32f103rc 为芯片 运行成功,但在配置st-link 以及下载烧录过程中此芯片报错,改用stm32f103rb 为芯片配置选择 128kb速度 则烧录运行成功

作者:电子小白

相关经验

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发经验
课程
    关闭

    站长推荐 上一条 /10 下一条

    快速回复 返回顶部 返回列表