本文目录一览

1,stm32 iic 复用 卡在whileI2CCheckEventI2C1EVENTMASTER

你全部配置为AF_OD!会不会是你这两个口没加上拉电阻?
需要帮你做吗再看看别人怎么说的。

stm32 iic 复用 卡在whileI2CCheckEventI2C1EVENTMASTER

2,stm32模拟i2c

1 肯定是复用模式了 GPIO_Mode_Out_AFOD;2 你连这个都不知道,那注意的有很多了 3 你理解错了 每一个外设都可以设置一个时钟,而且管脚复用后芯片内部的连接和原来的没有关系,也就是说你只要设置好I2C的时钟就可以了 4 恩......100k?不好意思,不太清楚。怎么控制?你把 3 弄明白了就会了。别告诉我你要拿IO口模拟,虽然也不难。

stm32模拟i2c

3,stm32模拟i2c

1 肯定是复用模式了 GPIO_Mode_Out_AFOD;2 你连这个都不知道,那注意的有很多了 3 你理解错了 每一个外设都可以设置一个时钟,而且管脚复用后芯片内部的连接和原来的没有关系,也就是说你只要设置好I2C的时钟就可以了 4 恩......100k?不好意思,不太清楚。怎么控制?你把 3 弄明白了就会了。别告诉我你要拿IO口模拟,虽然也不难。
stm32的i2c的bug:因为ack信号时间很短暂,一旦错过了这个短暂的ack信号,stm32就挂了。cpu要处理很多不同的任务,一旦其他任务占用了cpu,ack就容易被错过。 官网不承认这个bug,给出的解决方案是:用最高优先级的dma来实现i2c传输。

stm32模拟i2c

4,如何理解stm32中GPIO口的最大输出速度

几种速度的区别:(1). GPIO 引脚速度: GPIO_Speed_2MHz (10MHz, 50MHz) ; 又称输出驱动电路的响应速度:(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。) 可理解为: 输出驱动电路的带宽:即一个驱动电路可以不失真地通过信号的最大频率。(如果一个信号的频率超过了驱动电路的响应速度,就有可能信号失真。失真因素?)如果信号频率为10MHz,而你配置了2MHz的带宽,则10MHz的方波很可能就变成了正弦波。就好比是公路的设计时速,汽车速度低于设计时速时,可以平稳地运行,如果超过设计时速就会颠簸,甚至翻车。关键是: GPIO的引脚速度跟应用相匹配,速度配置越高,噪声越大,功耗越大。带宽速度高的驱动器耗电大、噪声也大,带宽低的驱动器耗电小、噪声也小。使用合适的驱动器可以降低功耗和噪声比如:高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。关键是GPIO的引脚速度跟应用匹配(推荐10倍以上?)。比如:</>① </>USART串口,若最大波特率只需115.2k,那用2M的速度就够了,既省电也噪声小。</>② </>I2C接口,若使用400k波特率,若想把余量留大些,可以选用10M的GPIO引脚速度。</>③ </>SPI接口,若使用18M或9M波特率,需要选用50M的GPIO的引脚速度。(2). GPIO的翻转速度指:输入/输出寄存器的0 ,1 值反映到外部引脚(APB2上)高低电平的速度.手册上指出GPIO最大翻转速度可达18MHz。@通过简单的程序测试,用示波器观察到的翻转时间: 是综合的时间,包括取指令的时间、指令执行的时间、指令执行后信号传递到寄存器的时间(这其中可能经过很多环节,比如AHB、APB、总线仲裁等),最后才是信号从寄存器传输到引脚所经历的时间。 如:有上拉电阻,其阻值越大,RC延时越大,即逻辑电平转换的速度越慢,功耗越大。(3).GPIO 输出速度:与程序有关,(程序中写的多久输出一个信号)。2、GPIO口设为输入时,输出驱动电路与端口是断开,所以输出速度配置无意义。3、在复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式。4、所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。5、GPIO口的配置具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁。
就是方波的斜率,上升下降的斜率大了,频率高时变成了对周期有影响。

5,stm32如何实现引脚复用

原发布者:tractorsaiSTM32的功能引脚重映射和复用功能STM32中有很多内置外设的输入输出引脚都具有重映射(remap)的功能,本文对一些在使用引脚重映射时所遇到的有关问题加以说明。我们知道每个内置外设都有若干个输入输出引脚,一般这些引脚的输出脚位都是固定不变的,为了让设计工程师可以更好地安排引脚的走向和功能,在STM32中引入了外设引脚重映射的概念,即一个外设的引脚除了具有默认的脚位外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的脚位。下面是STM32F103xC中有关USART3引脚的摘要片段;从这里可以看出,USART3_TX的默认引出脚是PB10,USART3_RX的默认引出脚是PB11;但经过重映射后,可以变更USART3_TX的引出脚为PD8,变更USART3_RX的引出脚为PD9。STM32中的很多内置外设都具有重映射的功能,比如USART、定时器、CAN、SPI、I2C等,详细请看STM32参考手册(RM0008)和STM32数据手册。有些模块(内置外设)的重映射功能还可以有多种选择,下面是RM0008上有关USART3输入输出引脚的重映射功能表:从这个表中可以看出,USART3的TX和RX引脚默认的引出脚位是PB10和PB11,根据配置位的设置,可以重映射到PC10和PC11,还可以重映射到PD8和PD9。一个模块的功能引脚不管是从默认的脚位引出还是从重映射的脚位引出,都要通过GPIO端口模块实现,相应的GPIO端口必须配置为输入(对应模块的输入功能,如USART的RX)或复用输出(对应模块的输出功能,如USART的TX),对于输出引脚,可以按
使用复用功能(1.使能GPIO口时钟2.使能复用功能的时钟 3.配置相应的模式)
先使能GPIO端口时钟;然后使能要服用的外设时钟,比如要把PA9/PA10复用为串口,此时就需要使能串口时钟;最后配置端口模式。
好像没有时钟复用的概念,引脚复用时,需要设置相应的时钟,一般情况如下:stm32引脚复用,以 can为例,pa11(canrx),pa12(cantx)为默认复用引脚。编程时,这样设置时钟 /*外设时钟设置*/ rcc_apb2periphclockcmd(rcc_apb2periph_afio | rcc_apb2periph_gpioa, enable); rcc_apb1periphclockcmd(rcc_apb1periph_can1, enable);pb8(canrx),pb9(cantx)为复用功能的重映射,编程时如下配置时钟: /*外设时钟设置*/ rcc_apb2periphclockcmd(rcc_apb2periph_afio | rcc_apb2periph_gpiob,enable); //1 rcc_apb1periphclockcmd(rcc_apb1periph_can1, enable);//2 /*io设置*/ gpio_pinremapconfig(gpio_remap1_can1, enable);//3
首先这个管脚得有复用的能力(底层电路实现),之后,就可以配置成不同的模式了

6,stm32中GPIO口的最大输出速度如何理解

几种速度的区别:(1). GPIO 引脚速度: GPIO_Speed_2MHz (10MHz, 50MHz) ; 又称输出驱动电路的响应速度:(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。) 可理解为: 输出驱动电路的带宽:即一个驱动电路可以不失真地通过信号的最大频率。(如果一个信号的频率超过了驱动电路的响应速度,就有可能信号失真。失真因素?)如果信号频率为10MHz,而你配置了2MHz的带宽,则10MHz的方波很可能就变成了正弦波。就好比是公路的设计时速,汽车速度低于设计时速时,可以平稳地运行,如果超过设计时速就会颠簸,甚至翻车。关键是: GPIO的引脚速度跟应用相匹配,速度配置越高,噪声越大,功耗越大。带宽速度高的驱动器耗电大、噪声也大,带宽低的驱动器耗电小、噪声也小。使用合适的驱动器可以降低功耗和噪声比如:高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。关键是GPIO的引脚速度跟应用匹配(推荐10倍以上?)。比如:① USART串口,若最大波特率只需115.2k,那用2M的速度就够了,既省电也噪声小。② I2C接口,若使用400k波特率,若想把余量留大些,可以选用10M的GPIO引脚速度。③ SPI接口,若使用18M或9M波特率,需要选用50M的GPIO的引脚速度。(2). GPIO的翻转速度指:输入/输出寄存器的0 ,1 值反映到外部引脚(APB2上)高低电平的速度.手册上指出GPIO最大翻转速度可达18MHz。@通过简单的程序测试,用示波器观察到的翻转时间: 是综合的时间,包括取指令的时间、指令执行的时间、指令执行后信号传递到寄存器的时间(这其中可能经过很多环节,比如AHB、APB、总线仲裁等),最后才是信号从寄存器传输到引脚所经历的时间。 如:有上拉电阻,其阻值越大,RC延时越大,即逻辑电平转换的速度越慢,功耗越大。(3).GPIO 输出速度:与程序有关,(程序中写的多久输出一个信号)。2、GPIO口设为输入时,输出驱动电路与端口是断开,所以输出速度配置无意义。3、在复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模式。4、所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。5、GPIO口的配置具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合,直到下次芯片复位才能解锁。
当STM32的GPIO端口设置为输出模式时,有三种速度可以选择:2MHz、10MHz和50MHz,这个速度是指I/O口驱动电路的速度,是用来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。  高频的驱动电路,噪声也高,当不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能。  当然如果要输出较高频率的信号,但却选用了较低频率的驱动模块,很可能会得到失真的输出信号。
stm32中GPIO口的最大输出速度如何理解?? 1,是这样的,2M、10M和50M是指GPIO口的采样频率。。不知这样理解对不对,我就是这样做的。2,我通过PB6采集80KBPS/S的方波,通过中断计采集,完全胜任。

文章TAG:b2i2c模式什么意思模式  什么  什么意思  
下一篇