历史上的今天
今天是:2024年09月06日(星期五)
2019年09月06日 | stm32 起步 gpio操作
2019-09-06 来源:eefocus
在工程中增加gpio lib.h和stm32头文件,如下:
#include “stm32f10x.h” // Device header
#include “stm32f10x_gpio.h”
调用lib配置gpio工作方式,先开启时钟,选GPIO,设置GPIO mode,gpio speed,主要看GPIO_InitTypeDef 结构体,芯片不同结构体不同,开始不清楚具体使用可以参考系统自带的example code,my setting如下:
void GPIO_Initmain(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* Configure all unused GPIO port pins in Analog Input mode (floating input
trigger OFF), this will reduce the power consumption and increase the device
immunity against EMI/EMC ***************************************/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
初始化后,操作GPIO,GPIO操作可以参考gpio的lib,调用lib实现gpio操作,如下:
/**增加一个delay
@brief Inserts a delay time.
@param nCount: specifies the delay time length.
@retval None
*/
void Delay(__IO u32 nCount)
{
for(; nCount != 0; nCount–);
}
int main(void)
{
GPIO_Initmain(); //初始化
while (1)
{
/* Turn on LD1 */
GPIO_ResetBits(GPIOD,GPIO_Pin_2); // IO 口拉低
GPIO_SetBits(GPIOD,GPIO_Pin_3); // IO 口拉高
GPIO_SetBits(GPIOD,GPIO_Pin_4);
Delay(0xAFFFF);
Delay(0xAFFFF);
Delay(0xAFFFF);
Delay(0xAFFFF);
Delay(0xAFFFF);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
GPIO_ResetBits(GPIOD,GPIO_Pin_3);
GPIO_SetBits(GPIOD,GPIO_Pin_4);
Delay(0xAFFFF);
Delay(0xAFFFF);
Delay(0xAFFFF);
Delay(0xAFFFF);
Delay(0xAFFFF);
GPIO_SetBits(GPIOD,GPIO_Pin_2);
GPIO_SetBits(GPIOD,GPIO_Pin_3);
GPIO_ResetBits(GPIOD,GPIO_Pin_4);
Delay(0xAFFFF);
Delay(0xAFFFF);
Delay(0xAFFFF);
Delay(0xAFFFF);
Delay(0xAFFFF);
}
}
4.编译后down load运行,GPIO操作成功。
史海拾趣
|
在中断函数里面有一段 if (USB_P_EP[0]) { USB_P_EP[0](USB_EVT_SETUP); continue; } 原型在下面: #define P_EP(n) ((USB_EP_EV ...… 查看全部问答> |
|
高压MOS/IGBT的短路保护电路 电源网讯 个人多年来从事高压脉冲电源的工作的一点经验总结 电路如上: 带短路保护锁定的驱动的3脚为短路信号检测入端;2脚为驱动地;1脚为驱动输出。 当电路存在短 ...… 查看全部问答> |
|
$(\'swf_k67\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/player.php/sid/XMjIxMTE2MzMy/v.sw ...… 查看全部问答> |
|
对了,我想求教一下,用msp430g2553+HD16210驱动液晶显示+DS18B20温度传感器 =做超低功数字式耗温度计,就是去年的电子科技大赛题目,不过用这一套怎么没做出来呢… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:30 编辑 尼玛!什么情况》》?搞个倒立摆,电机实在是不堪重负,屡屡陨落呀,这事要闹那样呀??? … 查看全部问答> |
|
PCB布局,布完线后怎么,进行DRC检查,没有错误,,只是一些警告,主要是丝印层的丝印间距问题,以及多脚芯片引脚间的距离(是按照封装说明自己画的封装库),这些有影响吗? … 查看全部问答> |




