夕口山关 发表于 2024-5-21 13:41

关于GD32F103RCT6 GPIO输出输入 输出最大速度设置不同出现BUG的问题

本帖最后由 夕口山关 于 2024-5-21 15:04 编辑

<p>测试的输出IO口有 PA4 &nbsp;PA5 PA6 &nbsp;PA7 PC4 PC5 PB0 PB1 PB2 PB10 PB11 PB12 PB13 PB14</p>

<p>输出IO口 全部设置初始低电平 推挽输出 下拉模式 输出最大速度作为观测变量测试的</p>

<p>输入IO口有 PA12 PA11 PA10 PA9 PA8 PC9 PC8 PC7</p>

<p>输入IO口全部设置 下拉模式</p>

<p>低速模式 输出口输出经过一个1k电阻到另一个输入口全部正常通过 输入高电平能接收到高电平</p>

<p>中速模式 &nbsp;PC4 PC5输出高电平 PA10没获取到高电平</p>

<p>高速模式 PB2 PB10输出高电平 PA9 PB11 PB12输出高电平 PA8</p>

<p>使用的是STM32CubeMx工具直接生成代码</p>

<p>有没有人知道为什么会出现这个BUG</p>

夕口山关 发表于 2024-5-21 15:04

<p>这个是描述的电路图 2个IO一个输出一个输入 中间加个1k电阻</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

wangerxian 发表于 2024-5-21 15:11

<p>如果把1K电阻去了呢</p>

夕口山关 发表于 2024-5-21 15:15

wangerxian 发表于 2024-5-21 15:11
如果把1K电阻去了呢

<p>不知道 没试过 不过1k电阻3.3v应该够吧 我并不是全部输出高电平&nbsp; 然后另一边再去ReadPin的</p>

<p>而是输出端第一个输出一个高电平 输入端读取电平&nbsp;然后输出端第一个再输出低电平</p>

<p>再输出端第二个输出一个高电平 输入端读取电平&nbsp;然后输出端第二个再输出低电平</p>

<p>再输出端第三个输出一个高电平 输入端读取电平&nbsp;然后输出端第三个再输出低电平</p>

<p>以此类推</p>

<p>应该不会出现电源不够用的情况</p>

夕口山关 发表于 2024-5-21 15:17

<div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&amp;goto=findpost&amp;pid=3331148&amp;ptid=1282421" target="_blank"><font color="#999999">wangerxian 发表于 2024-5-21 15:11</font></a></font> 如果把1K电阻去了呢</blockquote>
</div>

<p>这是用到的部分代码</p>

<p>for(i=0; i&lt;ucSetWireNum; i++){</p>

<p>HAL_GPIO_WritePin(gpioOutPorts, gpioOutPins, GPIO_PIN_SET);</p>

<p>HAL_Delay(100);</p>

<p>if(HAL_GPIO_ReadPin(gpioInPorts, gpioInPins) == GPIO_PIN_SET){</p>

<p>printf(&quot;\n输出%d和%d导通!&quot;, i, i);</p>

<p>}</p>

<p>HAL_GPIO_WritePin(gpioOutPorts, gpioOutPins, GPIO_PIN_RESET);</p>

<p>}</p>

wangerxian 发表于 2024-5-21 16:53

夕口山关 发表于 2024-5-21 15:15
不知道 没试过 不过1k电阻3.3v应该够吧 我并不是全部输出高电平&nbsp; 然后另一边再去ReadPin的

而是 ...

<p>那你设置输出端为上拉呢。话说你这是要做什么?</p>

夕口山关 发表于 2024-5-21 17:05

wangerxian 发表于 2024-5-21 16:53
那你设置输出端为上拉呢。话说你这是要做什么?

<p>测试线材两端是否导通</p>

夕口山关 发表于 2024-5-21 17:08

wangerxian 发表于 2024-5-21 16:53
那你设置输出端为上拉呢。话说你这是要做什么?

<p>我用低速模式能实现我的功能</p>

<p>我是想搞明白 为什么中高速模式 部分io会出现问题</p>

<p>是芯片问题还是什么其他问题</p>

wangerxian 发表于 2024-5-22 11:11

夕口山关 发表于 2024-5-21 17:08
我用低速模式能实现我的功能

我是想搞明白 为什么中高速模式 部分io会出现问题

是芯片问题还是什么 ...

<p>有可能不同速度内部设置有所不同。</p>

wangerxian 发表于 2024-5-22 11:12

夕口山关 发表于 2024-5-21 17:05
测试线材两端是否导通

<p>1K电阻是模拟线材的阻抗吗?</p>

夕口山关 发表于 2024-5-22 11:40

wangerxian 发表于 2024-5-22 11:12
1K电阻是模拟线材的阻抗吗?

<p>1k电阻是用来限流的</p>

夕口山关 发表于 2024-5-22 11:42

wangerxian 发表于 2024-5-22 11:11
有可能不同速度内部设置有所不同。

<p>我的描述中</p>

<p>中速模式 &nbsp;PC4 PC5输出高电平 PA10没获取到高电平</p>

<p>高速模式 PB2 PB10输出高电平 PA9 PB11 PB12输出高电平 PA8</p>

<p>PC4 PC5输出中速模式不正常</p>

<p>PA10是输入脚 没有做改变 应该没问题</p>

<p>PB2 PB10 PB11 PB12输出高速模式不正常</p>

<p>PA9和PA8是输入脚 没有做改变应该没问题</p>

<p>&nbsp;</p>
页: [1]
查看完整版本: 关于GD32F103RCT6 GPIO输出输入 输出最大速度设置不同出现BUG的问题