STM32F103引脚输入输出冲突?模拟IIC与网络模块在一组IO上无法同时使用!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32F103引脚输入输出冲突?模拟IIC与网络模块在一组IO上无法同时使用!相关的知识,希望对你有一定的参考价值。

//IO方向设置
#define SDA_IN() GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=0x80000000;
#define SDA_OUT() GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=0x30000000;

//IO操作函数
#define IIC_SCL PBout(6) //SCL
#define IIC_SDA PBout(7) //SDA
#define READ_SDA PBin(7) //输入SDA

。。。。。。。。。。。。

void SPI1_Init(void)

RCC->APB2ENR|=1<<3; //PORTB时钟使能
RCC->APB1ENR|=1<<14; //SPI2时钟使能

//这里只针对SPI口初始化
GPIOB->CRH&=0X000FFFFF;
GPIOB->CRH|=0XBBB00000;//PB13,14,15复用
GPIOB->ODR|=0X7<<5; //PB13,14,15上拉

SPI2->CR1|=0<<10;//全双工模式
SPI2->CR1|=1<<9; //软件nss管理
SPI2->CR1|=1<<8;

SPI2->CR1|=1<<2; //SPI主机
SPI2->CR1|=0<<11;//8bit数据格式
SPI2->CR1|=1<<1; //空闲模式下SCK为1 CPOL=1
SPI2->CR1|=1<<0; //数据采样从第二个时间边沿开始,CPHA=1
SPI2->CR1|=7<<3; //Fsck=Fpclk2/256
SPI2->CR1|=0<<7; //MSBfirst
SPI2->CR1|=1<<6; //SPI设备使能
SPI1_ReadWriteByte(0xff);//启动传输


上面是代码部分,如果将第一行的IO换成PA网络模块就能正常工作。我的硬件已经做好了不能更改!请问是什么问题引起的冲突

参考技术A 经济环境好好干

以上是关于STM32F103引脚输入输出冲突?模拟IIC与网络模块在一组IO上无法同时使用!的主要内容,如果未能解决你的问题,请参考以下文章

STM32F103(二十二)一篇文章精通《IIC通信》

STM32F103 实例应用(3.1)——GPIO(增加深度)

STM32F103 实例应用(3.1)——GPIO(增加深度)

STM32F103 实例应用(3.1)——GPIO(增加深度)

STM32F103 使用TIM3产生四路PWM

stm32F103寄存器点灯