zxpr.net
当前位置:首页 >> stm32驱动olED 不管是SPI还是IIC为啥都是模拟的 为啥不采用板子上的?表示一脸闷逼。。。... >>

stm32驱动olED 不管是SPI还是IIC为啥都是模拟的 为啥不采用板子上的?表示一脸闷逼。。。...

stm32硬件IIC不好用,据说是有问题,所以大多都是使用模拟IIC;SPI的话,个人认为如果硬件连接是连接的STM32硬件SPI接口,使用硬件SPI比用模拟SPI好,速度,稳定性,简便性都很强.如果硬件设计不到位的话,只能用模拟的SPI.

STM32F1XX系列的I2C有错误;所以用I2C硬件去实现的时候,出现的异常,很难排除;可是ST一直不承认.好象STM8也有这个问题.但ST后续的一些产品中,申明了I2C部分进行了全新的设计.(没有问题为何要重新设计?);我被它坑的极惨.损失极大!浪费很多的时间来查问题所在,结论是用IO端口模拟I2C的通讯正常;用硬件模块自动处理,行不通! 它不是摆设,是陷阱!

1. 硬件iic用法比较复杂,模拟iic的流程更清楚一些.2. 硬件iic速度比模拟快,并且可以用dma3. 模拟iic可以在任何管脚上,而硬件只能在固定管脚上.

SPI总线建议你使用STM32内置的SPI总线,网上有很多例程.如果你一定要模拟也是可以的.IIC总线一直是STM32的诟病,用模拟总线更安全一些.一般的IO口都可以配置成你说的四种模式的任意一种,而且编程过程中可以随时进行转换.有些脚只能设置成输出或者输入,比如OSC32的IN,OUT做普通IO使用时就是如此.这些在STM32的datasheet的引脚部分中都有详细说明.IIC总线CLK要用推挽,数据总线在送出信号时设置成推挽,输入如果没有上拉电阻时配置成上拉输入,有上拉则配置成浮空输入.SPI总线的CLK,CS,MOSI脚设置成推挽,MISO脚配置成上拉输入.

你这种情况比较复杂!SPI总线建议你使用STM32内置的SPI总线,网上有很多例程.如果你一定要模拟也是可以的.IIC总线一直是STM32的诟病,用模拟总线更安全一些.一般的IO口都可以配置成你说的四种模式的任意一种,而且编程过程中可以随时进行转换.有些脚只能设置成输出或者输入,比如OSC32的IN,OUT做普通IO使用时就是如此.这些在STM32的datasheet的引脚部分中都有详细说明.IIC总线CLK要用推挽,数据总线在送出信号时设置成推挽,输入如果没有上拉电阻时配置成上拉输入,有上拉则配置成浮空输入.SPI总线的CLK,CS,MOSI脚设置成推挽,MISO脚配置成上拉输入.

这个问题应该是程序初始化的问题,OLED一般有spi和usart通讯的,按键使用的是gpio检测,可能是初始化的时候管脚定义的功能存在问题.要配置成我上述的管脚功能就可以了.

我做过stm32和msp430,我觉得问题应该出在以下几个方面:1.I/O配置错误:单片机与屏驱动芯片相连的I/O变了,在程序移植后没有修改,造成数据的读写错误.2.延时程序:STM32主频是72MHz,而MSP430是8MHZ,相差很多,原来的演示程序不试用430.在对驱动芯片读写过程中调用延时函数,由于延时不匹配,造成读写失败.

第一句的意思是把变量X的高4位移到低4位去,并且和0x10取或运算(这里可以看成+16)第二句是把变量X的值取低4位,并且与0x01取或运算(最低位始终为1)

1,可以看底层配置,比如IO口配置,如果配置了IO口的功能(IIC功能)那就是固件IIC,否则就是模拟2,可以看IIC写函数,看里面有木有调用现成的函数或者给某个寄存器赋值,如果有,则肯定是固件IIC功能,没有的话肯定是数据一个bit一个bit模拟发生送的,肯定用到了循环,则为模拟3,根据代码量判断模拟的代码量肯定比固件的要大希望对你有帮助谢谢

(I) MISO (Master In Slave Out):主机输入、从机输出信号.该信号在主设备中作为输入而在从设备中作为输出,亦即在一个方向上发送串行数据.一般是先发送MSB(最高位)后发送LSB(最低位).若没有从设备被选中.则主设备的MISO线处

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.zxpr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com