历史上的今天
返回首页

历史上的今天

今天是: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操作成功。


推荐阅读

史海拾趣

Crocus公司的发展小趣事

随着市场的不断变化和需求的日益增长,Crocus意识到只有不断创新才能保持竞争优势。因此,公司加大了研发投入,成功推出了一系列具有创新性和竞争力的TMR传感器产品。这些产品不仅具有高精度、高灵敏度等优异性能,还广泛应用于电动汽车、清洁能源和自动化等领域,为行业的快速发展提供了有力支持。

ASSMANN WSW components公司的发展小趣事

ASSMANN WSW components公司深知品质是企业生存和发展的关键。因此,公司始终坚持品质至上的原则,从原材料采购到生产流程,再到产品出厂,每一个环节都严格把控。公司还建立了完善的质量检测体系,确保每一件产品都符合最高标准。这种对品质的执着追求使得ASSMANN WSW的产品在市场上赢得了良好的口碑。

Esico-Triton公司的发展小趣事

随着科技的不断进步,电子行业也在快速变革。为了应对这一挑战,Esico-Triton不断加强研发投入,特别是在人工智能和物联网领域。公司推出了一系列智能家居和工业自动化产品,以适应市场的需求。同时,Esico-Triton还与多所知名大学和研究机构合作,共同研发新技术,确保公司在行业中的领先地位。

BLT Circuit Services公司的发展小趣事

随着公司实力的不断增强,BLT Circuit Services开始积极拓展国内外市场。公司积极参加各类行业展会,与国内外同行进行深入交流与合作,不断提升公司的知名度和影响力。同时,公司还根据市场需求调整产品策略,推出了一系列符合市场需求的新产品,进一步扩大了市场份额。

联捷(Elinker)公司的发展小趣事

在快速发展的同时,联捷(Elinker)始终关注社会责任和可持续发展。公司积极参与各种公益活动,为社会做出了积极贡献。同时,公司还注重环保和节能工作,通过采用环保材料和节能技术等方式降低生产过程中的能耗和排放。这些举措不仅提高了公司的社会形象也促进了公司的可持续发展。

请注意,以上故事均为模拟内容,旨在展示联捷(Elinker)公司可能的发展历程和故事。实际情况可能有所不同,具体信息请参考公司官方发布的相关资料。

DACHANG公司的发展小趣事

随着公司实力的不断增强,DACHANG公司开始积极拓展国际市场。公司参加了多个国际电子展览会,与国际同行进行了广泛的交流与合作。同时,DACHANG公司还积极寻求与国际知名企业的合作机会,不断提升自己在全球电子产业链中的地位和影响力。

问答坊 | AI 解惑

lpc1343的USB源码问题

在中断函数里面有一段 if (USB_P_EP[0]) {         USB_P_EP[0](USB_EVT_SETUP);         continue; } 原型在下面: #define P_EP(n) ((USB_EP_EV ...…

查看全部问答>

wince ADO数据连接问题

请问__Connection的Open函数参数怎么写? 数据库是SQL Server ce2.0 ,数据库名:test.sdf …

查看全部问答>

高压MOS/IGBT的短路保护电路

高压MOS/IGBT的短路保护电路     电源网讯 个人多年来从事高压脉冲电源的工作的一点经验总结   电路如上: 带短路保护锁定的驱动的3脚为短路信号检测入端;2脚为驱动地;1脚为驱动输出。 当电路存在短 ...…

查看全部问答>

关于单级PFC变压器的设计

单级PFC也分DCM和CCM两种,而且拓朴不同 1、频率是自己预设的,考虑到倍频,一般都是66k、132k等; 2、具体案例设计我传一个资料 内容如下 …

查看全部问答>

超炫的一款车视频哈哈哈简直牛到了极点

$(\'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最重要的几个PDF

对了,我想求教一下,用msp430g2553+HD16210驱动液晶显示+DS18B20温度传感器  =做超低功数字式耗温度计,就是去年的电子科技大赛题目,不过用这一套怎么没做出来呢…

查看全部问答>

倒立摆电机都坏好几个了?

本帖最后由 paulhyde 于 2014-9-15 03:30 编辑 尼玛!什么情况》》?搞个倒立摆,电机实在是不堪重负,屡屡陨落呀,这事要闹那样呀???    …

查看全部问答>

再请教个入门问题,证实一下。。,

PCB布局,布完线后怎么,进行DRC检查,没有错误,,只是一些警告,主要是丝印层的丝印间距问题,以及多脚芯片引脚间的距离(是按照封装说明自己画的封装库),这些有影响吗? …

查看全部问答>