dma+i2c
答:从外设(TIMx、ADC、SPIx 、I2Cx 和USARTx )产生的DMA请求,通过逻辑或输入到DMA控制器,这就意味着同时只能有一个请求有效。外设的DMA请求,可以通过设置相应的外设寄存器中的控制位,被独立地开启或关闭。DMA1各通道一览:这里我们要使用的是串口 1 的 DMA 传送,也就是要用到通道 4。DMA1通道4...
答:业内一直传说STM32的硬件I2C有bug,会出现一些死锁的情况,所以大家一般都会避免使用硬件I2C,转而使用模拟I2C,毕竟引脚可以随便设置。具体到底有没有坑,这个我还真的没测试过,一直用的都是模拟I2C。
答:从外设(TIMx、ADCx、SPIx、I2Cx、和USARTx)产生的DMA请求,通过逻辑或输入到DMA控制器,这就意味着同时只能有一个请求有效(在同一时间,就只能使用其中的一个,其他通道也类似)。外设的DMA请求,可以通过设置相应的外设寄存器中的控制位,被独立的开启或关闭。看到这里串口DMA请求的定义就出来了:先...
答:NSPI总线是由Cypress公司开发的一种串行通信协议,它的设计目的是为了满足高速数据传输和大容量存储器访问的需求。NSPI总线支持高达400Mbps的数据传输速率,可以连接多达16个设备。此外,NSPI总线还支持DMA传输和高速SPI模式,可以实现快速的数据传输和处理。相比之下,I2C总线则更适合连接低速设备和传感器。I2...
答:STM32的I2C的Bug:因为ack信号时间很短暂,一旦错过了这个短暂的ACK信号,STM32就挂了。CPU要处理很多不同的任务,一旦其他任务占用了CPU,ACK就容易被错过。官网不承认这个Bug,给出的解决方案是:用最高优先级的DMA来实现I2C传输。我以前用I2C就遇到过这种问题,改成状态机的方式后就没有问题了,把...
答:I2C是一个总线,一般是做人机交互的,用于简单的控制输入输出。HID一般指的是usb的人机交互设备,如我们的键盘,鼠标、触摸板。驱动信号的类型?内存NAND时钟电源DMAIO端口UARTUSB中断LCDIICIISSPI摄像头触屏按键声卡网卡SATAPCI-Express BSPGPIO 设备种类:字符驱动块设备网络设备杂项设备 五个子系统:进程...
答:1. 硬件IIC用法比较复杂,模拟IIC的流程更清楚一些。2. 硬件IIC速度比模拟快,并且可以用DMA 3. 模拟IIC可以在任何管脚上,而硬件只能在固定管脚上。软件i2c是程序员使用程序控制SCL,SDA线输出高低电平,模拟i2c协议的时序。一般较硬件i2c稳定,但是程序较为繁琐,但不难。硬件i2c程序员只要调用i2c的...
答:STM32 APB1和APB2的区别主要是三点,分别是所对接的端口不通、工作速度状态不同、以及外设不同,具体区别如下如下:1、所对接的端口不同:APB1负责DA,USB,SPI,I2C,CAN,串口2345,普通TIM。APB2负责AD,I/O,高级TIM,串口1。2、所支持速度不同 APB1支持低速状态下的工作,APB2支持高速状态下...
答:对于ST公司推荐的将I2C工作在DMA和最高优先级的中断,大家可以根据自己的情况使用,因为如果你使用了ucos ii或者其它实时操作系统,那么这种设置最高优先级的方式是绝对不推荐的。如果你是裸机程序,并且任务数量不多,可以考虑这种DMA+中断的方式,否则一定会出现问题,只是测试时间长短问题。最后需要说明的...
答:疯狂STM32实战讲学录 PDF电子书带书签目录.pdf免费下载链接: https://pan.baidu.com/s/1yPee6kkG40_xmtXl-NgWwQ 提取码: crysstm32物联实战 ,IT行业培训知名度高,0基础,转行学习,先学习后付款,试听后报名stm32物联实战课程培训 理论+实战+模考试+面试,一站式辅导流程 ...
网友评论:
何兔19484746940:
如何使用dma mode进行i2c传输 -
47607戴严
: master mode 主机模式 (下面例子中老大的模式) slave mode 从机模式 (下面例子中小混混的模式) master or slave transmit mode 主机或者从机 发送模式 master or slave receive mode 主机或者从机 接受模式 i2c是一个传输的协议,可以通过协...
何兔19484746940:
STM32 硬件I2C 到底是不是个坑 -
47607戴严
: 下面是我在测试中得到的几个结论:1、硬件I2C的CLK在50kHz及以下的情况下工作,不会出现任何情况下的卡住.(本人测试时间为20h)2、硬件I2C的CLK在常用的100kHz和400KHz下工作,99%的概率下会在1小时之内卡住,甚至只有几...
何兔19484746940:
stm32 i2c需要设置中断吗 -
47607戴严
: STM32的I2C的Bug:因为ack信号时间很短暂,一旦错过了这个短暂的ACK信号,STM32就挂了.CPU要处理很多不同的任务,一旦其他任务占用了CPU,ACK就容易被错过. 官网不承认这个Bug,给出的解决方案是:用最高优先级的DMA来实现I2C传输.
何兔19484746940:
STM32F302RC 硬件I2C DMa有坑吗 -
47607戴严
: 业内一直传说STM32的硬件I2C有bug,会出现一些死锁的情况,所以大家一般都会避免使用硬件I2C,转而使用模拟I2C,毕竟引脚可以随便设置.具体到底有没有坑,这个我还真的没测试过,一直用的都是模拟I2C.
何兔19484746940:
stm32模拟i2c -
47607戴严
: 1 肯定是复用模式了 GPIO_Mode_Out_AFOD;2 你连这个都不知道,那注意的有很多了 3 你理解错了 每一个外设都可以设置一个时钟,而且管脚复用后芯片内部的连接和原来的没有关系,也就是说你只要设置好I2C的时钟就可以了 4 恩......100k?不好意思,不太清楚.怎么控制?你把 3 弄明白了就会了.别告诉我你要拿IO口模拟,虽然也不难.
何兔19484746940:
stm32 i2c需要上拉电阻吗 -
47607戴严
: 需要,因为是IIC是开漏的.
何兔19484746940:
关于STM32的I2C从机模式程序要什么写 -
47607戴严
: I2C(芯片间)总线接口连接微控制器和串行I2C总线.它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时.支持标准和快速两种模式,同时与SMBus2.0兼容.I2C模块有多种用途,包括CRC码的生成和校验、SMBus(系统管理总线—SystemManagementBus)和PMBus(电源管理总线—PowerManagementBus).根据特定设备的需要,可以使用DMA以减轻CPU的负担.
何兔19484746940:
STM32 IIC使用模拟I0口,能用DMA来处理吗? -
47607戴严
: DMA通道和外设一一对应,所以不可以.
何兔19484746940:
有没有这样的芯片:I2C接口输入,PWM信号输出 -
47607戴严
: 如果你指的是有这种功能的专用芯片貌似没有……一般芯片的通讯和PWM输出功能都是相互独立的.比如自带PWM输出功能的单片机,其PWM输出的占空比控制通过编程来实现;I2C接口控制也要有相应的通讯协议程序处理.1kHz频率不高的,很多单片机都能达到十几K.
何兔19484746940:
想不通 I2C中断有什么作用? -
47607戴严
: IIC接收数据只是存到指定的寄存器中,如果你不取走,下次再接收数据就直接冲掉了,所以IIC接收到数据之后给CPU中断,中断服务程序去处理这些收到的数据!查找中断源是一种保险的做法,要是由于其他的哪几种原因产生了中断,但是此时数据并没有接收完,中断服务子程序去处理数据了,结果就不对了!如果你自己敢保证不会出现哪几种情况就可以完全不用写!