打印
[STM8]

再问一个STM8S的例程中关于GPIO的问题

[复制链接]
5549|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dolphin本本|  楼主 | 2009-1-19 18:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用Timer1产生PWM的功能。
我使用的是STM8S207K6的芯片,在这个芯片上有GPIO A-D,产生PWM的时候,想使用Timer1的3个channel产生6个PWM,就是有反相输出的这样子。
我的硬件上的反相的管脚是PC1和PB0,PC2和PB1,PC3和PB2,但是例程中给出的是PC1和PH7,PC2和PH6,PC3和PH5,郁闷了,在芯片上根本找不到PH的IO口。
想问一下大家,这个PH7的管脚对应TIM1_CH1N的设定是在哪里设定的吗?
沙发
dolphin本本|  楼主 | 2009-1-20 01:00 | 只看该作者

晕,没人知道吗

还是说得不够清楚?

使用特权

评论回复
板凳
computer00| | 2009-1-20 10:00 | 只看该作者

可能这个名字不是H组IO口吧?PWM专用的名字吧?

使用特权

评论回复
地板
ijk| | 2009-1-20 14:05 | 只看该作者

关于PH7

  关于PH7,在STM8S207K6(32pin)没有这个引脚,但是在80pin的STM8里面(例程估计基于80pin的芯片),应该有,所以LZ得根据具体芯片来改。

使用特权

评论回复
5
dolphin本本|  楼主 | 2009-1-20 14:09 | 只看该作者

是PWM专用的

除了PWM功能之外,还有IO口的功能,现在readme文档中是这样写的:Tim1_CH1N(PH7),也就是意思Tim1的ch1的反相输出是和PH7一个管脚的,但是现在我的207K6的芯片上Tim1的ch1的反相输出对应的是PB0的管脚,目前我认为是因为这个原因才导致配置相同的情况下,Tim1_CH1有输出而Tim1_CH1N没有输出。所以想知道有没有什么地方可以配置这种IO口的功能。

使用特权

评论回复
6
dolphin本本|  楼主 | 2009-1-20 15:33 | 只看该作者

4楼

80pin里的是有的。你所说的具体芯片来改就是我目前想知道的。例程中也没有涉及到哪里是定义管脚的,具体还真不知道应该怎么来修改这个。

使用特权

评论回复
7
ijk| | 2009-1-21 09:56 | 只看该作者

readme文档

  readme文档显然是针对80pin芯片的,LZ现在用的STM8S207K6的芯片(32pin)肯定没有PH口,至于有没有TIM1_CH1N、TIM1_CH2N和TIM1_CH3N这些引脚,应该看它的data sheet。

使用特权

评论回复
8
dolphin本本|  楼主 | 2009-1-21 10:00 | 只看该作者

是有这些PWM的功能的

Tim1_CH1N对应的就是PB.0口。
那么换句话说,在使用Tim1_CH1N这些功能的时候,设置上有什么不同的吗?我是直接按照例程中的对Timer1的设定来执行的。

使用特权

评论回复
9
dolphin本本|  楼主 | 2009-1-21 10:06 | 只看该作者

哈哈,终于有啦

终于让我找到了哪里开启的地方了,感谢ijk的指引,还是需要多看看datasheet呀,仔细看了一下管脚的设定,在现在使用的芯片中TIM1_CH1N是作为Alternative Function来执行的,所以在下载好以后,需要在MCU Config里面把相应的功能打开。唉,不知道为什么ST没有直接全部打开呢?

使用特权

评论回复
10
computer00| | 2009-1-21 10:50 | 只看该作者

即使复位后默认状态是打开的,你也应该要写个初始化程序

这个操作是很有必要的,方便你以后程序的移植等等。所以在使用芯片某个模块时,一定要把这个模块的
每个相关的寄存器都搞清楚,并专门写一个对应的初始化程序,对每个寄存器初始化一遍,以免浪费自己
调试的时间。如果我的程序不这么干,会让我心里没底。

使用特权

评论回复
11
dolphin本本|  楼主 | 2009-1-21 11:14 | 只看该作者

继续

这种alternate function的功能是属于remapping使用的?

使用特权

评论回复
12
dolphin本本|  楼主 | 2009-1-21 11:36 | 只看该作者

继续

在Flash.c文件中有这么一个修改的函数,叫FLASH_ProgramOptionByte,但是使用了似乎没有多大效果。

使用特权

评论回复
13
computer00| | 2009-1-21 11:42 | 只看该作者

不是吧...这个应该是第二功能。没仔细看

使用特权

评论回复
14
8bit_mcu| | 2009-1-21 16:16 | 只看该作者

就是option byte配一下呀

根据你自己的需要,配置option byte就可以了。没什么“全打开”的说法的。一般option byte 都是在程序烧入到芯片的时候配好烧进去的。

使用特权

评论回复
15
dolphin本本|  楼主 | 2009-1-23 13:36 | 只看该作者

8bit mcu

我使用在软件中配置option byte时,使用falsh.c中带有的函数,但是没有实现功能么?请问你说的烧入前配置是指怎么配置呢?

使用特权

评论回复
16
ijk| | 2009-1-23 14:37 | 只看该作者

关于STM8配置option byte

  关于STM8配置option byte,一般是通过STVP 来修改,然后把它烧到芯片里面。可以参考附图,图中的AFR5。

使用特权

评论回复
17
ijk| | 2009-1-23 14:42 | 只看该作者

STM8配置option byte

STM8配置option byte,附图

使用特权

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

本版积分规则

13

主题

43

帖子

0

粉丝