总结:通过配置三个输入和输出来建立项目,以进行核心配置。 根据文章,使用Configuration 2 Core配置进行以下配置: 新工程的图形化配置 调试时钟信号的图形化配置 时钟树的图形化配置 调试接口的图形化配置 检查调试接口的配置配置 选择高级配置 输入输出等 要配置输出,请按 。 按钮配置输入配置进行输出配置详细信息
cubemx配置stm32(3)__GPIO输入/输出1.创建项目并运行核心配置
根据文章2.使用cubemx配置stm32(2)__核心配置配置如下: CubeMX 新工程调试 CubeMX 图形配置 时钟信号 CubeMX 图形时钟树配置 CubeMX 图形配置调试接口
检查配置:
详细配置说明
1. 设置和选择输入和输出
例如,将LED 设置为输出,将按钮设置为输入。
2、配置为输出时的详细配置说明(此时我们已将该芯片的PB1配置为输出,也可以使用其他芯片的其他引脚。(请参考电路图) (1).GPIO输出电平(引脚初始电平设置)
High 初始化输出为高电平 Low 初始化输出为低电平(2 ).GPIO模式(GPIO输出模式) 输出推挽 推挽输出强高低电平,输出开漏可以给IO设备供电。 开漏输出模式是强低电平。 只有低电平才能给IO设备供电,而高电平只能作为信号输出
(3)。 GPIO pull- up/pull- down (上拉和下拉电阻)
Pull- no up, no pulll-down 无上拉或下拉 pull-up 内部上拉电阻 Pull-downm 内部下拉电阻
(4).最大输出速度(引脚速度设置)
Low low Speed Medium Medium Speed High High Speed Very High High Speed
(5).User Label
设置引脚的名称,例如 LED0
2。配置为输入时的配置(此时,我将这个芯片 PH3 配置为输入。您也可以使用其他芯片的其他引脚。您应该参考您的开发板的原理图)>
(1)。 ).GPIO模式(GPIO输入模式)
输入模式 输入模式
(2).GPIO Pull-up/Pull-down(上拉和下拉电阻)
无上拉-,无上拉-下拉 无上拉或下拉 上拉- 内部上拉电阻 下拉- 内部下拉电阻
KEY0 和 KEY1 的一端为连接到地。 按下按钮即可转到低电平。 按钮未按下时应为低电平。 由于它是高电平,因此必须在内部拉高。 上拉后,如果不按下按钮,信号将为高电平。
同样,KEY_UP的一端连接到VCC。 按下按钮即可进入高级别。 该按钮未按下时为低电平,因此需要内部拉低。 拉低后,如果不按下按钮,信号将处于低电平。
(3).User Label
为引脚命名,例如 KEY0 2。 示例:配置PB1 PB0 PH3并生成代码
为该软件生成项目后,在顶部单击右侧的GENERATE CODE角
相关小项目代码示例可参见以下文章:
3、关键代码解释及应用
1.生成初始化函数代码(注释为手动添加)
static void MX_GPIO_Init(void){ GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO 端口时钟使能 */ __HAL_RCC_GPIOC_CLK_ENABLE(); // 使能 GPIOC 时钟,外部时钟输入使用 PC14 PC15 __HAL_RCC_GPIOH_CLK_ENABLE(); //按钮使能 PH3 外部时钟 使能 GPIOH 时钟。 输入使用PH0 PH1。 __HAL_RCC_GPIOB_CLK_ENABLE(); //LED 使用PB0 PB1,因此启用GPIOB 时钟 __HAL_RCC_GPIOA_CLK_ENABLE(); //调试下载接口使用PA13 PA14,因此启用GPIOA 时钟。 /*设置GPIO引脚的输出电平 */ HAL_GPIO_WritePin( GPIOB, LED1_Pin|LED0_Pin, GPIO_PIN_SET); //LED1和LED0配置相同,可以同时配置 //初始电平配置为高电平 /* GPIO Pin configuration: KEY0_Pin */ //按键的GPIO初始化配置 GPIO_InitStruct.Pin = KEY0_Pin;//Main.h有#define KEY0_Pin GPIO_PIN_3对应PH3中的3 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;//模式为Input模式 GPIO_InitStruct。 Pull = GPIO_PULLUP;//内部电阻上拉 HAL_GPIO_Init(KEY0_GPIO_Port, &GPIO_InitStruct);//初始化 按照上面配置 /*GPIO 引脚:LED1_Pin LED0_Pin */ //LED1和LED0配置相同,可以同时配置。 GPIO_InitStruct.Pin = LED1_Pin|LED0_Pin; //这里配置了两个LED,这是GPIO的输出 //main.h包含#define LED0_Pin GPIO_PIN_1,#define LED1_Pin GPIO_PIN_0是PB1对应PB0的1和0 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //模式为推挽输出 GPIO_InitStruct.Pull = GPIO_PULLUP; //内部电阻上拉 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; //输出速度为低 HAL_GPIO_Init (GPIOB, &GPIO_ InitStruct );//根据上述}
2. 应用相关函数
评论前必须登录!
注册