当前位置: 首页 > news >正文

gd32关于IO引脚配置的一些问题

一、gd32f103的PA15问题
1、
在这里插入图片描述

 #define GPIO_SWJ_NONJTRST_REMAP          ((uint32_t)0x00300100U)   /*!< full SWJ(JTAG-DP + SW-DP),but without NJTRST */
#define GPIO_SWJ_SWDPENABLE_REMAP        ((uint32_t)0x00300200U)   /*!< JTAG-DP disabled and SW-DP enabled */
#define GPIO_SWJ_DISABLE_REMAP           ((uint32_t)0x00300400U)   /*!< JTAG-DP disabled and SW-DP disabled */  gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP, ENABLE); // 该情况下PA15,PB3,PB4可作普通GPIO使用;

【ref】https://blog.csdn.net/qq_34152804/article/details/118584370
2、原本PA15已经用于红外通信功能
在这里插入图片描述

void pwm_timer1_config(void)
{timer_ic_parameter_struct timer_icinitpara;timer_oc_parameter_struct timer_ocintpara;timer_parameter_struct timer_initpara;// clockrcu_periph_clock_enable(RCU_GPIOA);rcu_periph_clock_enable(RCU_GPIOB);rcu_periph_clock_enable(RCU_AF);rcu_periph_clock_enable(RCU_TIMER1);gpio_pin_remap_config(GPIO_TIMER1_FULL_REMAP, ENABLE);/*Configure PA15 PB3 PB10 PB11(TIMER1 CH0 CH1 CH2 CH3) as alternate function*/gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_15); // 红外通信

【attention】1和2代码同时存在情况下,PA15依然可作为普通IO口输入检测(即便是又经过gpio_pin_remap_config(GPIO_TIMER1_FULL_REMAP, ENABLE)的二次重映射),已验证有效;
但是即便生效,也不能同时用于光耦检测和红外通信两个功能上,很明显会相互干扰;

Q&A :这种重映射会有多个功能options时,它们之前是如何distinguish的?还是说这几个选项功能会同时存在生效?

二、PC6问题
在这里插入图片描述

void cap_timer7_init(void)
{timer_parameter_struct timer_initpara;timer_ic_parameter_struct timer_icinitpara;// timer_oc_parameter_struct timer_ocintpara;//clockrcu_periph_clock_enable(RCU_TIMER7);rcu_periph_clock_enable(RCU_AF); rcu_periph_clock_enable(RCU_GPIOC);// GPIOgpio_init(GPIOC, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_6); // 红外通信

【attention】PC6原被复用为TIMER7_CH0功能,在多个复用选项时如何区分?虽然已经把PC6复用为TIMER7_CH0,但是依然可作为普通io输入检测,已验证;

http://www.lryc.cn/news/235545.html

相关文章:

  • QT小记:警告Use multi-arg instead
  • 皮肤性病科专家谭巍主任提出HPV转阴后饮食七点建议
  • 快速弄懂C++中的智能指针
  • C#调用C++ dll教程
  • 计算机毕设 深度学习 大数据 股票预测系统 - python lstm
  • 97.qt qml-自定义Table之实现ctrl与shift多选
  • 运行软件报错mfc140.dll丢失?分享mfc140.dll丢失的解决方法
  • milvus数据库-连接
  • ios + vue3 Teleport + inset 兼容性问题
  • 计蒜客T1654 数列分段(C语言实现)
  • Linux进程——system函数、popen函数
  • 【智能家居】5、主流程设计以及外设框架编写与测试
  • 详解ssh远程登录服务
  • LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄
  • wpf devexpress绑定grid到总计和分组统计
  • 嵌入式 Linux 移植与系统启动方法
  • 代码随想录算法训练营|五十六天
  • 基于django水果蔬菜生鲜销售系统
  • 【数据结构】快速排序算法你会写几种?
  • C#访问修饰符
  • anaconda中安装pytorch和TensorFlow环境并在不同环境中安装kernel
  • 记一次解决Pyqt6/Pyside6添加QTreeView或QTreeWidget导致窗口卡死(未响应)的新路历程,打死我都想不到是这个原因
  • 用照片预测人的年龄【图像回归】
  • Fork项目新分支如何同步
  • Linux 常用压缩格式
  • 高效背单词——单词APP安利
  • 力扣 字母异位词分组 哈表 集合
  • ⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
  • 使用SpringBoot进行游戏服务器开发
  • 数据结构——树状数组