打印
[STM32F1]

请教香主IO复用冲突问题

[复制链接]
985|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wang5430|  楼主 | 2015-9-28 13:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教下香主。
使用芯片:STM32F103RCT6,QFP64封装
问题描述:板子同时用到I2C1(芯片58,59脚)和TIM1_CH1(芯片41脚)。我先配置好I2C1再配置TM1_CH1,则TIM1_CH1无PWM输出。先配置TIM1_CH1,则所有功能都正常。感觉像是先配置I2C1的话,芯片41脚上也被配置成I2C1了一样。但是这个脚跟I2C1没有关系呀。复用功能里也没有I2C1的复用。使用的ST提供的库。好像是3.0的吧
沙发
zchong| | 2015-9-28 14:59 | 只看该作者
是不是外设时钟的问题

使用特权

评论回复
板凳
天灵灵地灵灵| | 2015-9-28 17:34 | 只看该作者
你要初始化时候分配好功能

使用特权

评论回复
地板
wang5430|  楼主 | 2015-9-30 09:06 | 只看该作者
zchong 发表于 2015-9-28 14:59
是不是外设时钟的问题

时钟都开的。没有问题。在不正常的情况下,我把I2C1初始化注销掉,TIM1_CH1就有输出了。所以肯定是两个冲突。怀疑是PA8被I2C1初始化程序配置成别的复用功能了。但是资料里PA8跟I2C1是没有任何关系的

使用特权

评论回复
5
wang5430|  楼主 | 2015-9-30 09:09 | 只看该作者
天灵灵地灵灵 发表于 2015-9-28 17:34
你要初始化时候分配好功能

怎么分配。我PA8口可以复用的功能是USART1_CK/TIM1_CH1/MCO这几个功能。跟I2C1没有任何关系。如果里面有一个复用功能是I2C1的话,那我先初始化I2C1的话是有可能被初始化到I2C1去了。那再配置TIM1_CH1不能用可以理解。毕竟一个IO不能做两种功能。问题是我现在没有配置成两种功能

使用特权

评论回复
6
李香兰| | 2015-9-30 09:18 | 只看该作者
香主是谁啊,是版主吗

使用特权

评论回复
7
Snow7| | 2015-9-30 10:00 | 只看该作者
手册里是怎么说的关于这块

使用特权

评论回复
8
wang5430|  楼主 | 2015-9-30 10:42 | 只看该作者
李香兰 发表于 2015-9-30 09:18
香主是谁啊,是版主吗

香水城版主

使用特权

评论回复
9
wang5430|  楼主 | 2015-9-30 10:44 | 只看该作者
Snow7 发表于 2015-9-30 10:00
手册里是怎么说的关于这块

资料查遍了。没找到I2C1和PA8有关的说法

使用特权

评论回复
10
Snow7| | 2015-10-8 14:43 | 只看该作者
是不是PA8没有I2C功能

使用特权

评论回复
11
cxc123er| | 2015-10-8 15:05 | 只看该作者
感觉还是时钟的问题,I2C TIM都应该是需要先配置时钟的(不仅是开时钟,分频什么的都应该需要做,尤其是I2C),可能是某个时钟相关寄存器或者某些寄存器操作之间有冲突。

使用特权

评论回复
12
Salfe| | 2015-10-8 15:37 | 只看该作者
占个位置 学习一下 :lol

使用特权

评论回复
13
wang5430|  楼主 | 2015-10-9 18:42 | 只看该作者
Snow7 发表于 2015-10-8 14:43
是不是PA8没有I2C功能

就是说PA8和I2C没有关系的。但是我先配置I2C会导致PA8无法输出PWM。才想不明白

使用特权

评论回复
14
wang5430|  楼主 | 2015-10-9 18:44 | 只看该作者
cxc123er 发表于 2015-10-8 15:05
感觉还是时钟的问题,I2C TIM都应该是需要先配置时钟的(不仅是开时钟,分频什么的都应该需要做,尤其是I2C ...

如果是时钟冲突的话,应该是先配置PWM后配置I2C才会不能输出PWM。因为配置I2C的时候会把PWM的时钟改掉。问题是现在反过来的。

使用特权

评论回复
15
天灵灵地灵灵| | 2015-10-10 09:23 | 只看该作者
也就是,用那个好用的方法配置,分好先后顺序,如果可以同时进行的用位的逻辑操作同时配置。免得因为后续的赋值修改了前面的配置。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

66

帖子

0

粉丝