打印
[STM8]

IO做了PWM 还能做普通IO用吗

[复制链接]
1758|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xwh7010|  楼主 | 2014-11-12 11:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IO做了PWM 还能做普通IO用吗
沙发
dirtwillfly| | 2014-11-12 11:51 | 只看该作者
一般是不能了

使用特权

评论回复
板凳
mmuuss586| | 2014-11-12 12:45 | 只看该作者
不行的;

不过你可以试下;

使用特权

评论回复
地板
ningling_21| | 2014-11-12 13:35 | 只看该作者
肯定不行,一般PWM输出的频率是比较高的

使用特权

评论回复
5
小班儿| | 2014-11-12 13:42 | 只看该作者
不能用吧

使用特权

评论回复
6
21ID| | 2014-11-12 15:32 | 只看该作者
不行的,除非你在重新配置过。

使用特权

评论回复
7
jialin123| | 2014-11-12 17:18 | 只看该作者
分时复用

使用特权

评论回复
8
行云_流水| | 2015-4-24 14:42 | 只看该作者
我实际项目证明,stm8s是可以的,stm32就有问题(需要注意配置处理)

我的一个项目用的是stm8s003f3

先说一下我的程序:

PC6用作PWM 口

#define  pwm_on    GPIO_WriteLow (GPIOC, GPIO_PIN_6)   
#define  pwm_off   GPIO_WriteHigh (GPIOC, GPIO_PIN_6)

PC6  IO口配置:

GPIO_Init(GPIOC,GPIO_PIN_6,GPIO_MODE_OUT_PP_HIGH_FAST );    //推挽输出

初始化TIM1相关参数,以配置PWM相关参数

然后在STVP中对  option  byte 中的 AFR0设置PC6为PWM输出。

然后,在程序中,

使用            TIM1_Cmd(ENABLE);TIM1_CtrlPWMOutputs(ENABLE);能使PC6输出PWM

同时,使用  

pwm_on  (#define  pwm_on    GPIO_WriteLow (GPIOC, GPIO_PIN_6) )

pwm_off  (#define  pwm_off   GPIO_WriteHigh (GPIOC, GPIO_PIN_6))

直接IO操作,也能对IO 置高置低,实践证明完全没有问题。

对于是否能作为普通的输入IO,没有实际操作过,理论是应该也是可以的。有兴趣可以试下,大体思路:

在需要用作输入口的的时候

先关闭PWM输出:  TIM1_Cmd(DISABLE);TIM1_CtrlPWMOutputs(DISABLE);

然后重新配置:
GPIO_Init(GPIOC,GPIO_PIN_6,GPIO_MODE_IN_PU_NO_IT );

在需要用作PWM输出的时候:

GPIO_Init(GPIOC,GPIO_PIN_6,GPIO_MODE_OUT_PP_HIGH_FAST );    //推挽输出

TIM1_Cmd(ENABLE);TIM1_CtrlPWMOutputs(ENABLE);能使PC6输出PWM


也就是分时复用。

使用特权

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

本版积分规则

18

主题

51

帖子

0

粉丝