STM32F103的SPI1和USART2存在冲突

2019-07-18 17:29发布

STM32F103的同时使用SPI1和USART2发现有冲突,有个AD芯片读取使用SPI1通讯,用USART2与232芯片通讯,但是AD芯片焊接后,232就没法通讯了,去掉AD芯片 后,就没有问题了,查功能的时候发现SPI1_NSS/USART2_CK是同一个管脚,是不是这个原因造成的呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
kkusfwe
1楼-- · 2019-07-18 20:02
只是把AD芯片焊接上且没有在程序中打开SPI1功能,与会导致USART2不能正常工作
ctwewer
2楼-- · 2019-07-19 00:07
SPI1_NSS可以在初始化SPI时禁止使能。
HengDu
3楼-- · 2019-07-19 02:25
如果串口配置为异步通信模式,并不会和SPI1的NSS引脚发生冲突
vyewrewr
4楼-- · 2019-07-19 07:00
如楼上所示,同步串口通讯会占用SPI管脚,异步串口通讯就不会冲突了。如果还是不行,可以试试不使用硬件片选信号NSS,SPI总线上如果只有一个设备,片选不是必须的。设备端直接拉低即可。
zhouxk
5楼-- · 2019-07-19 12:08
 精彩回答 2  元偷偷看……
wang222221
6楼-- · 2019-07-19 15:12
尝试方向其一:用软件 GPIO 来控制 NSS 信号。一般 SPI 设备不会对 NSS 提太过严苛的时序要求,GPIO 控制的确是比硬件控制慢,而且会限制 DMA 的使用,但至少可以奏效。
尝试方向其二:就地降级 STM32F0 或升级 STM32F3 系列。STM32F1 的 GPIO 没有 AF 选择功能是这个冲突的根本原因。F0、F3 这两个系列的芯片都有 AF 选择功能,且与 STM32F1 管脚兼容,可直接替换。

一周热门 更多>