历史上的今天
今天是:2025年02月14日(星期五)
2019年02月14日 | SMT32控制IO时,模式和速度如果一样可以省略
2019-02-14 来源:eefocus
#include "led.h"
#include "stm32f10x.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义一个GPIO初始化结构体
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //PB口时钟使能
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG,ENABLE); //PG口时钟使能
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE); //PF口时钟使能
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //PC口时钟使能
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //PE口时钟使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOG | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOA,ENABLE);
这里五行代码用一行就可以了,用 | ,体现了算法的精妙!
//下面的用到的IO口工作模式和速度都是一样的,所以设置一次就行
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //设置第13管脚
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOB, GPIO_Pin_13); //设置PB13管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //设置第0管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOG, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOG, GPIO_Pin_0); //设置PG0管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; //设置第14管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOF, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOF, GPIO_Pin_14); //设置PF14管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; //设置第12管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOF, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOF, GPIO_Pin_12); //设置PF12管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //设置第2管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOB, GPIO_Pin_2); //设置PB2管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //设置第0管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOB, GPIO_Pin_0); //设置PB0管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; //设置第4管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOC, GPIO_Pin_4); //设置PC0管脚输出高电平
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //设置第5管脚
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置速度50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); //调用GPIO初始化函数
GPIO_SetBits(GPIOA, GPIO_Pin_6); //设置PA6管脚输出高电平
}
史海拾趣
|
本文有模拟电路、数字电路、单片机电路、ARM硬件、ARM编程等基础知识,里面还有电阻、电容、半导体二级管三极管等元器件的介绍,还有电源电路、电路设计、通信系统等。欢迎想学电子基础知识的人下载。… 查看全部问答> |
|
书接上文 https://bbs.eeworld.com.cn/thread-92283-1-1.html 逻辑综合 如图中所示,逻辑综合是PLD,FPGA,ASIC设计的中心环节。在数十年中,逻辑综合工具把高级语言转换为门级电路,使设计师能够在更高的抽象层次上进行硬件设计,极大的提高 ...… 查看全部问答> |
|
我最近在学华恒ARM9,用的是三星S3C2410当做到中断这个问题的时候,遇到了问题,还请各位大虾帮忙 问题如下: 1、不管我把中断置一还是置零都没看到区别,和芯片资料有出入,为什么会这样 2、我把中断待决寄存器和源待决寄存器的值读出来,发现 ...… 查看全部问答> |
|
代码如下: / UART初始化 void uartInit(void) { SysCtlPeriEnable(SYSCTL_PERIPH_UART1); // 使能UART模块 &nbs ...… 查看全部问答> |
|
#include \"msp430g2553.h\" //unsigned char SPWM_FLAG; unsigned char i=0; void main(void) { //unsigned char i=0; //unsigned char a[32]={0x80,0x98,0xb0,0xc6,0xda,0xea,0xf5,0xfd,0xff,0xfd,0xf5,0xea,0xda,0xc6,0xb0, ...… 查看全部问答> |




