新手入门
- 积分
- 9
- 金钱
- 9
- 注册时间
- 2018-9-12
- 在线时间
- 6 小时
|
1金钱
代码是下面那样的,但是初始化后 只有PB0和PB1能用,5 6 7 都不能用,求大神解答
[mw_shl_code=c,true]void output_init(void) //初始化
{
GPIO_InitTypeDef GPIO_InitStructure; //定義初始化結構體
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //打開GPIOB時鐘
//風扇0
GPIO_InitStructure.GPIO_Pin = 0; //Pin_0
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PB0
GPIO_ResetBits(GPIOB,GPIO_Pin_0); //PB0置0
//風扇1
GPIO_InitStructure.GPIO_Pin = 1; //Pin_1
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PB1
GPIO_ResetBits(GPIOB,GPIO_Pin_1); //PB1置0
//抽風
GPIO_InitStructure.GPIO_Pin = 5; //Pin_5
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PB1
GPIO_ResetBits(GPIOB,GPIO_Pin_5); //PB5置0
//發熱絲
GPIO_InitStructure.GPIO_Pin = 6; //Pin_6
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PB1
GPIO_ResetBits(GPIOB,GPIO_Pin_6); //PB6置0
//噴霧器
GPIO_InitStructure.GPIO_Pin = 7; //Pin_7
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化PB1
GPIO_ResetBits(GPIOB,GPIO_Pin_7); //PB7置0
}
[/mw_shl_code]
|
最佳答案
查看完整内容[请看2#楼]
1 为0001
5 为0101
6 为0110
7 为0111
所以,其实你最后一句的GPIO_InitStructure.GPIO_Pin = 7;
相当于GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2;
即同时初始化了0、1、2三个引脚,
不信也把前面的GPIO_InitStructure.GPIO_Pin = 0、1、5、6; 都删除,只留下=7效果将是一样的。
|