arduino - 输入!== 输出信号 - 为什么?
问题描述
我正在使用带有 PlatformIO 和 Arduino 框架的 STM32G431KB Nucleo 板 (nucleo_g431kb - 170MHz)。
我的简单代码如下所示:
void setup()
{
pinMode(PA11, INPUT);
pinMode(PA12, OUTPUT);
}
void loop()
{
if (digitalReadFast(PA_11) == HIGH) {
digitalWriteFast(PA_12, HIGH);
}
else {
digitalWriteFast(PA_12, LOW);
}
}
在引脚 11 上,我得到了一个定义明确的输入信号,如下图所示(黄色信号)。图片中的蓝色信号是来自 STM32(引脚 12)的信号。
现在蓝色信号不像黄色信号那样定义。理论上,它们应该是相同的,不是吗?如何使输出信号镜像输入信号?芯片应该有足够的功率。我尝试了一个下拉电阻,但它没有改变任何东西。我想,我简直是傻子。
解决方案
尝试内部上拉电阻,例如
pinMode(PA12, OUTPUT_PULLUP);
还可以尝试更改输出引脚作为测试,因为似乎其他东西(其他进程)也在尝试拉同一个输出引脚。
推荐阅读
- python - asyncio 任务已被破坏,但它处于挂起状态
- react-native - 如何向动态创建的表单添加输入?
- asp.net - IIS url 重写规则与域更改和 https
- sharefile - 如何使用 v3 ShareFile API 删除 ShareFile 文件夹?
- sql - 如何通过新列标注 A 列和 B 列之间是否匹配
- python - 图邻接表不同实现方式的优缺点
- sql - 如何检查 JSOB 对象中是否存在值,而 JSOB 对象又具有其值的数组
- xml - XSLT 2 反向标记化结果
- linux-kernel - 是什么决定了 BIO 结构中的 bv_len(对于 I/O 请求)?
- python - 我想打开一个文件对话框并将所选文件的位置作为参数传递给 tkinter 以在 gui 上显示?