管脚问题

2019-10-15 19:20发布

void LED_Init(void)
{

GPIO_InitTypeDef  GPIO_InitStructure;
       
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);         //ê1ÄüPB,PE¶Ë¿úê±Öó
       
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                               
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                 
GPIO_Init(GPIOB, &GPIO_InitStructure);                                       
GPIO_SetBits(GPIOB,GPIO_Pin_5);                                                 

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                             
GPIO_Init(GPIOE, &GPIO_InitStructure);                                           
GPIO_SetBits(GPIOE,GPIO_Pin_5);                                                   
}

红 {MOD}字体这部分代码,对于管脚的推输出和速度配置就不用再次设置了吗?
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;       

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
lvkanger
1楼-- · 2019-10-15 23:33
可以加可以不加,因为在这个函数里,结构体变量的值已经全部赋值了,后边的只是改变需要更改的变量,而那两个变量是没变的,所以不用加这两句代码也可以的!
rjiky
2楼-- · 2019-10-16 04:37
 精彩回答 2  元偷偷看……
不死鸟
3楼-- · 2019-10-16 06:35
从代码上来看,对管脚的初始化是由语句GPIO_Init(GPIOE, &GPIO_InitStructure) 实现的,只要结构体GPIO_InitStructure内的成员变量值与你需要的值相同就可以不进行重复赋值,而你需要的变量赋值如下
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                                
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
其中两个管脚的速度和模式都是一样的,所以不需要重新写,只需要将管脚重新赋值就可以。
但是假如你的程序很长的话,那么还是可以将模式和速度的赋值语句重新再写一次的,这样阅读起来更清晰。

一周热门 更多>