历史上的今天
今天是:2025年04月22日(星期二)
2019年04月22日 | 关于stm32硬件spi的miso口配置
2019-04-22 来源:eefocus
在我们刚使用spi时,对于spi的io口配置可能会有一些疑惑吧,miso明明是一个输入口却配置成了复用推挽输出,是不是会有一点疑惑呢?
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 复用的推挽输出
MISO不是应该设置成为输入端口(GPIO_Mode_IN_FLOATING)才行的吗?是不是很抑或呢?
哈哈哈,开始我和大家也有一样的疑惑,问了两个同事也没有个答案,自己再网上找了资料慢慢才明白了其中缘由。
其实配置为复用推挽输出也是可以正常工作的,只不过配置成浮空输入和上拉输入更容易理解。
具体产生这一问题的原因是:从功能上来说,MISO应该配置为输入模式才对,但为什么也可以配置为GPIO_Mode_AF_PP?实际上当一个GPIO端口配置为GPIO_Mode_AF_PP时,片上外设的复用功能输出信号会连接到输出控制电路,然后在端口上产生输出信号。但是在芯片内部,MISO是SPI模块的输入引脚,而不是输出引脚,也就是说“复用功能输出信号"根本不存在,所以"输出控制电路"就不能对外部产生输出信号,然而即使在复用推挽输出模式下,复用功能输入信号却与外部引脚之间相互连接,既MISO得到了外部信号的电平,实现了输入的功能。
下一篇:STM32F0中断优先级
史海拾趣
|
我想在一个多任务程序中用udp方式实现任务之间的通信,应该属于在本地机上实现通信,不知道怎么做啊,把ip设成一样的127.0.0.1就可以了吗?… 查看全部问答> |
|
1,请教几个问题,是不是理论上来说,任何linux版本都可以移植到2440上,只是易难不同? 2.如果2440移植的不是三星提供的版本,那是不是移植非常困难,但是据我所知三星只提供mizi版呀?而mizi是面对2410的呀?贵公司在2440的板子上移植Linux 2.6.1 ...… 查看全部问答> |
|
我想在ADS下调用libxml2解析器的函数,有知道怎么导入的么? 或者还有其他更方便的xml解析库么? 刚用tinyxml试了下,好多Error,是不是ADS下对c++支持不怎么好?… 查看全部问答> |
|
想构建一个系统,实现高速数据采集,采集频率至少在400MHz,ADC采集后的数据通过FPGA缓存至DDR2 SDRAM。现在不清楚DDR2应该如何选,选DDR2 400 可以吗?cyclone III不支持DDR2 800。… 查看全部问答> |
|
液晶浮点值显示的一种解决方法 在以ucOS-II为系统搭建的工程中,需要在液晶LCD上显示浮点型值,但液晶的驱动函数中仅编写了一个显示字符串的函数GUI_DispStringAt(); 所以需要一个函数把浮点型值转化成字符串,然后以字符串的形式输出到LC ...… 查看全部问答> |
|
1.致命错误 jpeglib.h没有那个文件或目录 libjpeg62-dev 2..致命错误 libmng.h没有那个文件或目录 免费下载地址在 http://linux.linuxidc.com/ 用户名与密码都是www.linuxidc.com zlib缺失 下载,安装 $tar -xvzf zlib-1.2.3.tar.gz $cd zl ...… 查看全部问答> |




