在工程中增加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操作成功。
上一篇:STM32定时器 输入捕获实现双边沿检测
下一篇:STM32F249按键中断控制LED+USART中断控制LED
推荐阅读
史海拾趣
DIALIGHT公司的故事始于1938年的纽约布鲁克林,当时该公司专注于为飞机生产仪表板灯。随着技术的不断进步和市场的变化,公司在1971年,即LED推出仅一年后,推出了他们的第一个LED产品。这一举措标志着DIALIGHT正式从传统的飞机仪表板灯制造转向LED照明技术的研发和应用。从此,DIALIGHT彻底改变了LED的用途,将其广泛应用于世界各地的交通控制、指示灯、结构塔和工业场所,为全球提供了优质的照明解决方案。
2022年,C&K Switches公司被Littelfuse以5.4亿美元的企业价值收购。Littelfuse是一家工业技术制造公司,致力于打造一个可持续、互联和更安全的世界。两家公司在工业、通讯以及车载领域有着相近的市场布局和业务高度互补。收购完成后,C&K成为Littelfuse电子业务部门的一部分,双方共同为客户提供更全面的解决方案。这一收购不仅加强了C&K的市场地位,还为其未来的发展注入了新的活力和机遇。
在电子行业的发展过程中,AEM始终保持着对技术创新的追求。公司不断投入巨资进行技术研发,引进先进的生产设备和制造工艺,致力于提升产品的性能和品质。通过多年的努力,AEM成功突破了多项技术难题,取得了一系列重要的技术成果。
此外,AEM还积极与产业上下游的企业进行合作,共同推动电子行业的发展。通过与供应商和客户的紧密合作,AEM不断优化供应链和销售渠道,提高了公司的运营效率和市场竞争力。
Bridgelux公司成立于XXXX年,由一群富有远见和创新精神的工程师创立。他们看到了LED照明技术的巨大潜力,并致力于将其商业化。公司初期面临资金和技术双重挑战,但他们凭借坚定的信念和不懈的努力,成功开发出了一系列高质量的LED照明产品,并逐渐获得了市场的认可。
Bridgelux公司成立于XXXX年,由一群富有远见和创新精神的工程师创立。他们看到了LED照明技术的巨大潜力,并致力于将其商业化。公司初期面临资金和技术双重挑战,但他们凭借坚定的信念和不懈的努力,成功开发出了一系列高质量的LED照明产品,并逐渐获得了市场的认可。
随着环保意识的不断提高,电子行业对环保的要求也越来越高。CBI公司积极响应国家环保政策,致力于研发环保型电子产品。通过采用环保材料、降低能耗等措施,CBI的产品在环保方面取得了显著成效。这一做法不仅赢得了消费者的青睐,也为公司树立了良好的社会形象。
我正在做一个基于ATmega16单片机的直流调速系统 要用到PID控制 第一个问题是 怎么用ATmega16实现PID控制 第二个问题 怎么将PID的输出与PWM波的占空比联系起来… 查看全部问答∨ |
|
数字转模拟(D/A) 隔离转换器485/232转4-20MA 数字转模拟(D/A) 隔离转换器:ISO DAO系列 RS232/RS485信号转模拟信号 隔离D/A转换器 产品概述: ISO DAO系列产品实现主机RS-485/232接口信号隔离转换成标准模拟信号,用以控制远程设备。ISODA系列产品可应用在 RS-232/RS-4 ...… 查看全部问答∨ |
|
二个程序它们各有静态变量或静态区。它们的静态区和操作系统的静态区有什么不同? 二个程序它们各有静态变量或静态区。它们的静态区和操作系统的静态区(事件EVENT,互斥体Mutex存放的地方)有什么不同?… 查看全部问答∨ |
本人去年7月份左右买了友善之臂的micro2440sdk开发板,现在将其转让,并且我愿意回答bootloader以及wince驱动的问题,其余不懂的我也会给一些意见。开发板网址http://www.arm9.net/micro2440sdk.asp就是这 ...… 查看全部问答∨ |
求解答,工具是ccs2.2,读写flash空间和Clist问题 1.目前要把VC的程序刻录到板子上,请问原程序中用的是CList, c里面有替代的或差不多的吗?如果有,头文件是什么?刚接触这个,挺迷糊,刚 从一个辞职的同事上接手个半成品程序。 2. 请问怎么往板子里的flash空间写数据? typedef struct & ...… 查看全部问答∨ |
|
情况如下: 开发板为AU1200,自己进行了重开发。换掉了原来的网卡芯片。换成了DM9000AE 板子启动后。在YAMON无法网络下载(问题1.这里是否可以修改YAMON的源码,将网卡配置通?如果可以请告之方法,我对此一无所知。),通过串口下载了eboot.sre ...… 查看全部问答∨ |
针对于Platform builder(Windows CE 5.0)的模拟环境下采用WININET API进行设置,通过Proxy访问外部网,其中Proxy需要认证,却可以通过,而相应的OS烧录入设备中却不通,何故?? PS. 应用WININET相关API如下:InternetOpen, InternetConnect, InternetS ...… 查看全部问答∨ |