历史上的今天
今天是:2024年10月05日(星期六)
2018年10月05日 | 【STM32电机方波】记录1——GPIO基础配置
2018-10-05 来源:eefocus
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速度 则烧录运行成功
史海拾趣
|
主控芯片Mega16,单ZIF座不用跳线就可以支持多种芯片,用的是zhifeng的POWERPRG早期版本采用的协议。 /*13楼内容*/ 说明几点: 1、上传的程序目前支持Mega8、Mega16\\32、Mega8535;M48\\88\\168时序应该和Mega8是一样的 ...… 查看全部问答> |
|
摘要:从数字系统设计的性质出发,结合目前迅速发展的芯片系统,比较、研究各种硬件描述语言;详细阐述各种语言的发展历史、体系结构和设计方法;探讨未来硬件描述语言的发展趋势,同时针对国内EDA基础薄弱的现状,在硬件描述语言方面作了一些有益 ...… 查看全部问答> |
|
“技术资讯”中技术文章是优特普为方便读者学习交流而收集的,均不代表优特普的观点,技术文章中的任何技术参数和论点均由撰文作者本人负责,优特普不对数据的正确性进行验证。优特普感谢网友对此栏目的热心支持,由衷敬佩文章原作者的辛勤劳作,如 ...… 查看全部问答> |
|
只允许某一进程访问数据库 其它的进程访问全被拦截 挂钩SSDT进行拦截还是用sfilter.sys(看到别人用这个实现了) 1 前一种方法能实现吗 2 哪种方法实现系统更稳定些 3 这两种方法我都不懂 用哪种方法更容易些… 查看全部问答> |
|
怎么样在当前对话框单击按钮后,改变另一个弹出的对话框(模式)的标签内容? 怎么样在当前对话框单击按钮后,改变另一个弹出的对话框(模式)的标签内容? 我在当前的对话框的按键事件下设置了 对象.GetDlgItem(控件IDC)->ShowWindow(SW_HIDE); 没有用,对当前对话框的ID有效,其他的对话框ID无 ...… 查看全部问答> |
|
请问在WINCE中怎么获得当前线程ID呢?有些难度的问题呀!!!!!! 请问在WINCE中怎么获得当前线程ID呢? 在WINDOWS XP中的kernel32.dll有GetCurrentThreadId方法获得当前线程ID,不知道在WINOWS CE中是用什么函数获得线程ID呢? 好象在WINDOWS CE中对应kernel32.dll的是coredll.dll,只是不知道在这个DLL中是否有获得 ...… 查看全部问答> |
|
我的环境: 1.基于移动APN网络.终端是一个GPRS模块,有一个SIM卡.在APN网内有一个IP 2.正常情况下GPRS模块使用AT+Connect \'服务器IP\',UDP,1234端口注册上网络以后,服务器可以Ping通这个IP. 3.经常出现的一个问题是.服务器使用UDP协议往终端发一 ...… 查看全部问答> |




