鱼C论坛

 找回密码
 立即注册
查看: 434|回复: 1

[已解决]stm32引脚定义

[复制链接]
发表于 2024-1-20 09:25:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
PB3的引脚的主功能是JTDO
PB4的引脚的主功能是NJTRST
这两个主功能分别是起什么作用的,想启用两个引脚的GPIO口功能要怎么做,为什么要这么做
最佳答案
2024-1-20 09:25:59
首先,STM32是一种常用的嵌入式微控制器系列,PB3和PB4是其引脚标识。

JTDO(JTAG数据输出)是一种用于调试和程序下载的接口,可以通过该接口与目标设备进行通信。它是JTAG(联合测试行动组)接口的一部分,主要用于调试和解决问题。在普通应用中,我们通常不需要使用JTDO引脚。

NJTRST(非联合测试行动组复位)是JTAG接口的辅助功能之一,用于系统的硬件复位。在一些特殊情况下,可能需要使用NJTRST来重置芯片或系统。

如果你想启用这两个引脚的GPIO功能,可以使用STM32的寄存器来配置对应的引脚模式。以下是一个使用HAL库的示例代码:

  1. #include "stm32fxxx_hal.h"

  2. int main(void) {
  3.   // 初始化HAL库
  4.   HAL_Init();

  5.   // 使能对应GPIO的时钟
  6.   __HAL_RCC_GPIOB_CLK_ENABLE();

  7.   // 配置PB3为GPIO模式
  8.   GPIO_InitTypeDef GPIO_InitStruct;
  9.   GPIO_InitStruct.Pin = GPIO_PIN_3;
  10.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 输出模式
  11.   GPIO_InitStruct.Pull = GPIO_PULLUP; // 上拉电阻
  12.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; // 高速频率
  13.   HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  14.   // 配置PB4为GPIO模式
  15.   GPIO_InitStruct.Pin = GPIO_PIN_4;
  16.   // 在此添加你的配置

  17.   // 死循环,保持程序运行
  18.   while (1) {
  19.     // 在这里添加你的代码
  20.   }
  21. }
复制代码

将上面的代码中相关的部分修改后,即可启用PB3和PB4引脚的GPIO功能。

为什么要这么做呢?因为STM32的引脚具有多种功能,可以实现不同的功能需求。通过配置引脚模式,我们可以根据实际需求选择不同的功能来使用引脚。这种灵活性使得开发者可以根据具体的应用场景来使用和管理引脚,提高了系统的可扩展性和可靠性。同时,通过合理配置引脚的功能,也能避免产生冲突和干扰,提高整个系统的性能和稳定性。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-20 09:25:59 | 显示全部楼层    本楼为最佳答案   
首先,STM32是一种常用的嵌入式微控制器系列,PB3和PB4是其引脚标识。

JTDO(JTAG数据输出)是一种用于调试和程序下载的接口,可以通过该接口与目标设备进行通信。它是JTAG(联合测试行动组)接口的一部分,主要用于调试和解决问题。在普通应用中,我们通常不需要使用JTDO引脚。

NJTRST(非联合测试行动组复位)是JTAG接口的辅助功能之一,用于系统的硬件复位。在一些特殊情况下,可能需要使用NJTRST来重置芯片或系统。

如果你想启用这两个引脚的GPIO功能,可以使用STM32的寄存器来配置对应的引脚模式。以下是一个使用HAL库的示例代码:

  1. #include "stm32fxxx_hal.h"

  2. int main(void) {
  3.   // 初始化HAL库
  4.   HAL_Init();

  5.   // 使能对应GPIO的时钟
  6.   __HAL_RCC_GPIOB_CLK_ENABLE();

  7.   // 配置PB3为GPIO模式
  8.   GPIO_InitTypeDef GPIO_InitStruct;
  9.   GPIO_InitStruct.Pin = GPIO_PIN_3;
  10.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 输出模式
  11.   GPIO_InitStruct.Pull = GPIO_PULLUP; // 上拉电阻
  12.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; // 高速频率
  13.   HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  14.   // 配置PB4为GPIO模式
  15.   GPIO_InitStruct.Pin = GPIO_PIN_4;
  16.   // 在此添加你的配置

  17.   // 死循环,保持程序运行
  18.   while (1) {
  19.     // 在这里添加你的代码
  20.   }
  21. }
复制代码

将上面的代码中相关的部分修改后,即可启用PB3和PB4引脚的GPIO功能。

为什么要这么做呢?因为STM32的引脚具有多种功能,可以实现不同的功能需求。通过配置引脚模式,我们可以根据实际需求选择不同的功能来使用引脚。这种灵活性使得开发者可以根据具体的应用场景来使用和管理引脚,提高了系统的可扩展性和可靠性。同时,通过合理配置引脚的功能,也能避免产生冲突和干扰,提高整个系统的性能和稳定性。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 20:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表