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

[复制链接]
6538|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得根据具体芯片来改。
 楼主| 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口的功能。
 楼主| dolphin本本 发表于 2009-1-20 15:33 | 显示全部楼层

4楼

80pin里的是有的。你所说的具体芯片来改就是我目前想知道的。例程中也没有涉及到哪里是定义管脚的,具体还真不知道应该怎么来修改这个。
ijk 发表于 2009-1-21 09:56 | 显示全部楼层

readme文档

  readme文档显然是针对80pin芯片的,LZ现在用的STM8S207K6的芯片(32pin)肯定没有PH口,至于有没有TIM1_CH1N、TIM1_CH2N和TIM1_CH3N这些引脚,应该看它的data sheet。
 楼主| dolphin本本 发表于 2009-1-21 10:00 | 显示全部楼层

是有这些PWM的功能的

Tim1_CH1N对应的就是PB.0口。
那么换句话说,在使用Tim1_CH1N这些功能的时候,设置上有什么不同的吗?我是直接按照例程中的对Timer1的设定来执行的。
 楼主| dolphin本本 发表于 2009-1-21 10:06 | 显示全部楼层

哈哈,终于有啦

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

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

这个操作是很有必要的,方便你以后程序的移植等等。所以在使用芯片某个模块时,一定要把这个模块的
每个相关的寄存器都搞清楚,并专门写一个对应的初始化程序,对每个寄存器初始化一遍,以免浪费自己
调试的时间。如果我的程序不这么干,会让我心里没底。
 楼主| dolphin本本 发表于 2009-1-21 11:14 | 显示全部楼层

继续

这种alternate function的功能是属于remapping使用的?
 楼主| dolphin本本 发表于 2009-1-21 11:36 | 显示全部楼层

继续

在Flash.c文件中有这么一个修改的函数,叫FLASH_ProgramOptionByte,但是使用了似乎没有多大效果。
computer00 发表于 2009-1-21 11:42 | 显示全部楼层

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

8bit_mcu 发表于 2009-1-21 16:16 | 显示全部楼层

就是option byte配一下呀

根据你自己的需要,配置option byte就可以了。没什么“全打开”的说法的。一般option byte 都是在程序烧入到芯片的时候配好烧进去的。
 楼主| dolphin本本 发表于 2009-1-23 13:36 | 显示全部楼层

8bit mcu

我使用在软件中配置option byte时,使用falsh.c中带有的函数,但是没有实现功能么?请问你说的烧入前配置是指怎么配置呢?
ijk 发表于 2009-1-23 14:37 | 显示全部楼层

关于STM8配置option byte

  关于STM8配置option byte,一般是通过STVP 来修改,然后把它烧到芯片里面。可以参考附图,图中的AFR5。
ijk 发表于 2009-1-23 14:42 | 显示全部楼层

STM8配置option byte

STM8配置option byte,附图
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

43

帖子

0

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