- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有什么办法可以把STM32的I2C1连接的SDA和SCL引脚设置为低信号或高信号吗?
我使用安全芯片,我必须发送唤醒条件,条件如下:
if SDA is held low for a period of greater than 60us, the device will exit low power mode and after a delay of 1500us, it will be ready to receive I2C commands.
我已经尝试使用 HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_9);
切换实际引脚,但这不起作用。
我已经使用 STM32CubeMX 配置了我的项目。
感谢您的帮助。
最佳答案
在 I2C 中,START 条件需要从高到低的转换,如果您随后发送虚拟地址 0,将生成 NACK(或者更确切地说,缺少任何响应将被解释为 NACK)。在正常交易中,软件会通过生成重复的 START 或 STOP 条件来响应 NACK,但这必须在软件中完成,因此您只需在 1.5ms 内什么都不做。此后,您可以使用设备的实际地址生成 START,如果设备正在运行,它将生成 ACK。
我不熟悉 HAL 库驱动程序,坦率地说文档很糟糕,但它可能没有给你必要的控制,你至少必须在寄存器级别访问 I2C 外设这个程序。您可以尝试零长度的 I2C_MasterRequestWrite()
调用来寻址零,然后延迟。示波器在这里很有用,可确保生成预期的信号时序。
关于c - STM32 I2C 设置 SDA 为低电平,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55099496/
我尝试使用 i2ctools 包中的 i2cdetect 实用程序检测 i2c 总线上的 rtc 设备。由于扫描 i2c 总线时看不到任何东西,我使用示波器,在第 9 个 SCL 的上升沿(ACK 位
我有阶段代码 $totalSpace = 74.5GB ; $freespacespace = disk_free_space('/dev/sda')/1024/1024; $usedSpace =
我正在过滤 lsblk -r 输出以列出非 sda 驱动器。不过,我不会列出 sdab、sdac 等驱动器。 我以前拥有的是: lsblk -r | grep -o '^[a-z]*' | grep
我在 Ubuntu 服务器上。 这是'df -m'的结果 Filesystem 1M-blocks Used Available Use% Mounted on /dev/sda3
好的,我正在尝试找到一种可以运行的方式 hdparm -t /dev/sda 10 次并获取输出并获得平均结果。 这没有给我想要的东西:无法弄清楚如何只获取 MB/秒 counter=1 total=
有什么办法可以把STM32的I2C1连接的SDA和SCL引脚设置为低信号或高信号吗? 我使用安全芯片,我必须发送唤醒条件,条件如下: if SDA is held low for a period o
我正在为特定的 Linux 安装使用 AoE 磁盘。 我需要告诉 linux 系统将/dev/etherd/e0.0 视为/dev/sda,我已经创建了/dev/etherd/e0.0 到/dev/s
我们有一个基于 LFS 的自定义 Linux,我们将其导入到 Azure。我们在那里将其作为经典虚拟机运行。 系统启动并运行良好,但虚拟磁盘确实发生了奇怪的事情。它们一次在 hdX 上作为 ide 磁
我试图通过命令行做的是让一个脚本获取新连接的硬盘并放置其设备位置,例如。 sda、sdb、sdc 等到我可以使用的变量中。我试过: tail -f/var/log/messages | 尾部 -f/v
我想为我的 linux 系统中除/dev/sda 之外的所有设备进行 grep。 我的设备 f.e. /dev/sda /dev/sda2 /dev/sdb /dev/sdc /dev/
我刚刚订购了一台配备 1TB 三星 SSD 的新服务器。安装了 Ubuntu 14.04.5 LTS。 启动到新安装的系统后,我在 dmesg 和/var/lib/syslog 中看到了这一点。 gr
在 Linux 上,我可以以/dev/sdX 的形式访问硬盘驱动器。这会忽略任何分区表、文件系统等,而只是逐块访问驱动器。 Cygwin 中的等价物是什么?我已经搜索过谷歌,但找不到任何有效的东西。
我浏览了Linux Kernel Module Programming指导,但无法弄清楚: 当我说 cat image.iso > /dev/sda ,会不会导致write file_operatio
我一直在研究一个从硬盘读取数据的程序。我想知道使用 sda 设备还是 sg0 设备更好?我知道如果你要做一些事情,比如使用 sg 驱动程序进行查询等,那么 sg0 更好用,但我想从驱动器读取数据...
我在看this video .它基本上教会了我如何使用 SQL Server 创建自己的登录页面。 所以在完全按照他所做的之后,当我点击提交按钮时,我有一个错误突出显示 sda.Fill(dt);。我
男孩,是这样的。一种。不重要的。问题,但似乎没有人能够正确回答。 如何将/dev/sda 与/dev/sdb 交换? 有人可以建议使用永久标签(例如/dev/disk/by-* ),但尽管有最好的意图
我不使用/dev/sdb,并且无法删除它。在Azure->磁盘中,我只有Os_Disk 30GB,在磁盘的VM选项卡中也只有Os_Disk。fdisk -l 显示 2 个磁盘: Disk /dev/s
将 USB 驱动器连接到嵌入式系统时,我需要运行脚本。我的想法是: SUBSYSTEM=="block",ACTION=="add", KERNELS=="sd?",RUN+="/script par
我正在尝试查找与磁盘和分区相关的信息。以下是我的代码。但问题是,我通过命令行从“/proc/partitions”查询磁盘名称来传递磁盘名称。是否有任何 api 也可以给我磁盘名称。 #include
如何通过 ioctl 调用或其他方式确定 SCSI 设备(例如/dev/sda)是否为磁盘?我已尝试以下操作,但 ioctl 调用失败。我的/dev/sda是U盘。 #include #includ
我是一名优秀的程序员,十分优秀!