-
用了这么久的STM32,PB4重映射作为TIM3CH1的PWM输出做过很多系统了,可是今天怎么都出不来,整了一下午的代码设置,无效!又测量了硬件通断,全没有问题!吃晚饭了,离开书房去吃饭,明天就大年30了,有点不耐烦,游走着想着是不是芯片IO烧毁了,决定冷静,先测试IO,看看IO作为通用能不能用。
-
吃完饭测试,发现IO可以输出高低电平,IO铁定没有烧毁。又对了几遍数据手册,还是没有搞定。
-
忽然想着,我采用了SPI重映射到PB345上,虽然我只有用了"只发模式",只占用PB3和PB5,原来想着PB4没有用,可以作为通用IO使用,见数据手册说明应该不会被SPI占用。就想着作为TIM3CH1也可以。
-
怀着试一试的心情,我打开了复用寄存器查看,将SPI1复用取消选择,就开始输出了! 现在咋办,硬件已经设计好了,只有用软件SPI 了。
-
可见复用不能对同一端口多个复用,估计STM32内部就像模拟开关一样,我先复用了TIM3,TIM3的CH1CH2 切换到了PB3 PB4处,之后我复用SPI1到PB3-5,则模拟开关切换到了SPI,这时,TIM3的CH1和CH2则断开了,不管你用SPI的那种模式,是否有IO没有用,复用只控制了模拟开关,切换内部连接。
AFIO复用寄存器
**AFIO取消SPI重映射!
**