有关STM32功能的提问

[复制链接]
 楼主| desomond 发表于 2011-7-18 10:42 | 显示全部楼层 |阅读模式
本人用的是STM32F103,现在有一问题,望经验丰富的大侠给予指点。如引脚PA9/USART1_TX/TIM1_CH2和PA10/USART1_RX/TIM1_CH3.....如果我用了USART1_TX和USATR1_RX作为串口输入输出引脚,那么我同时用到了TIM1的通道2和通道3,这会不会相冲突
香水城 发表于 2011-7-18 10:49 | 显示全部楼层
本帖最后由 香水城 于 2011-7-18 10:53 编辑

如果你要使用它们的输入输出功能,就会有冲突。
 楼主| desomond 发表于 2011-7-18 10:57 | 显示全部楼层
多谢香主如此用心,这么快就回答了。按照这种推理的话,虽然每一个引脚上都列出了很多的功能,但是如果用到了其一,就不能用其他的功能了吗?例如:PA3/USART2_RX/TIM5_CH4/ADC123_IN3/TIM2_CH4,是不是表示TIM5的通道4和TIM2的通道4不能同时用呢?
香水城 发表于 2011-7-18 11:09 | 显示全部楼层
如果你要使用它们的输入输出功能,就会有冲突。

反之,如果你不使用它们的输入输出功能,就不会有冲突。比如需要TIM5的通道4做输入输出,但TIM2的通道4不做输入输出,只做内部定时,就不会有冲突!
 楼主| desomond 发表于 2011-7-18 11:12 | 显示全部楼层
哦,原来如此....唉,在做PCB板硬件设计的时候没有考虑到这一点,现在在做程序上面出了一些问题,才开始怀疑会是这方面的问题,香主经验丰富啊........这些STM32的说明文档上面有吗?我看了一下好像没有看到
香水城 发表于 2011-7-18 11:15 | 显示全部楼层
一个引脚怎么可能同时输出两种信号呢?这是常识问题。
 楼主| desomond 发表于 2011-7-18 11:17 | 显示全部楼层
我可能没说明白,我的意思是这个引脚只用于输入串口信号,虽然用到了TIM1——ch2定时,但是,定时器并不用到引脚,它只用到定时作用
 楼主| desomond 发表于 2011-7-18 11:21 | 显示全部楼层
本人用的是STM32F103,现在有一问题,望经验丰富的大侠给予指点。如引脚PA9/USART1_TX/TIM1_CH2和PA10/USART1_RX/TIM1_CH3.....如果我用了USART1_TX和USATR1_RX作为串口输入输出引脚,那么我同时用到了TIM1的通道2和 ...
desomond 发表于 2011-7-18 10:42
问题补充,我用到了USART1_TX和USATR1_RX作为串口输入输出引脚,同时TIM作定时器,它不输入输出,没有用到引脚
香水城 发表于 2011-7-18 11:27 | 显示全部楼层
你用的具体型号是什么?查查它的勘误手册。
 楼主| desomond 发表于 2011-7-18 11:30 | 显示全部楼层
哦,我用的是STM30F103RCT6,勘误手册在哪里可以查到的呢。。。我就是用到TIM1的时候,串口接收不到数据的,官方网站上应该会有吧
香水城 发表于 2011-7-18 12:24 | 显示全部楼层
问题补充,我用到了USART1_TX和USATR1_RX作为串口输入输出引脚,同时TIM作定时器,它不输入输出,没有用到引脚
desomond 发表于 2011-7-18 11:21


没有用到输入输出,只要不使能定时器的输出,就不会有冲突。

勘误手册可以在ST网站查到。
ShakaLeo 发表于 2011-7-18 12:28 | 显示全部楼层
检查一下初始化的时候是否把USART1的TX和RX脚重映射到了别的引脚上。
pananmao3760675 发表于 2011-7-18 12:45 | 显示全部楼层
不错,以前有用过
 楼主| desomond 发表于 2011-7-18 15:31 | 显示全部楼层
没有用到输入输出,只要不使能定时器的输出,就不会有冲突。

勘误手册可以在ST网站查到。
香水城 发表于 2011-7-18 12:24

有点不明白“只要不使能定时器的输出”这句话,我要用到USART1_TX,USART1_Rx就必须配置GPIO,为  /***配置USART1 RX的GPIO****/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
   GPIO_Init(GPIOA, &GPIO_InitStructure);
/****配置USART1 TX的GPIO****/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
同时,我要使用TIM1,就必须要使能TIM_Cmd(TIM1, ENABLE);同时,我TIM1的TIM1_OCInitStruct.TIM_OCMode = TIM_OCMode_Timing;  
    TIM1_OCInitStruct.TIM_Pulse = 65535;//CaptureVal;
    TIM1_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_Low;要使输出不使能,是要加上这句吗?TIM1_OCInitStruct.TIM_OutputState = TIM_OutputState_Disable ;
对于使能输出,不是很理解,还望香主指点
 楼主| desomond 发表于 2011-7-18 15:32 | 显示全部楼层
要使输出失能,是要加上TIM1_OCInitStruct.TIM_OutputState = TIM_OutputState_Disable ;这句吗?难道说默认是enable,我之前是没有加的
eydj2008 发表于 2011-7-18 17:41 | 显示全部楼层
会 需要映射IO 到其它脚 就可以 使用二个功能
yinyangdianzi 发表于 2011-7-19 15:44 | 显示全部楼层
学习了
 楼主| desomond 发表于 2011-7-20 09:29 | 显示全部楼层
检查一下初始化的时候是否把USART1的TX和RX脚重映射到了别的引脚上。
ShakaLeo 发表于 2011-7-18 12:28

没有映射到其他引脚上去,用的就是原来的usart1
香水城 发表于 2011-7-20 09:59 | 显示全部楼层
你试过15楼的这个TIM_OutputState_Disable吗?结果如何?
 楼主| desomond 发表于 2011-7-20 10:23 | 显示全部楼层
15楼的之前就试过了,刚才重新测了一次,还是不可以的....
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

109

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部