打印
[STM8]

STM8S常见问题大杂烩

[复制链接]
15936|85
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
有意思|  楼主 | 2010-4-2 23:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近再使用STM8S207RB进行开发,以下是自己使用cosmic时遇到的一些常见问题:

1.printf/sprintf入口参数必须是u16类型,否则打印结果不正确,很奇怪
2.u32位类型的判断if ((val%0x1000) == 0)此判断前必须强制转换,即
    if ((u16)(val%0x1000) == 0),否则if每次都成立。
3.程序空间大于32k时,把常量const强制分配到指定空间32k以内,个人把前16k都分配
   给const,code从32k之后开始,使用
   #pragma section const {iconst}
    ....//const变量
   #pragma section const {}
    在STVD软件中增加iconst段,同时分配地址空间,在setting->Linker->category中
   选择input,进入之后一看便知。
4.interrupt.h和it.h中_stext重复定义,但编译时却报空间超了,屏蔽it.h中的定义,
5.一个工程有多个C文件时,一个C文件不能太大,我的一个menu.c文件,处理菜单操作
   的,很大,估计万行左右,编译时,cosmic每次都提示“遇到错误,自动关闭”,后来
   将menu.c中的函数移到其它c文件中,即正常,个人怀疑是单个文件不能太大。
6.使用24MHz时,必须选择1wait,说是简单,但必须先连上目标板,在设置,即debug
   后,在mcu配置中设置
7.EEPROM操作时,会关闭中断,导致我的UART数据都丢了,做好容错处理,还有块擦
   除需要在RAM中进行,使用Facpy函数,具体怎样忘记了

   大概差不多了,有的也忘记了,希望给正准备使用的朋友少走点弯路,做开发,时间宝
  贵啊,希望大家不要在已经有人遇到的问题上花费太多时间。
   我现在使用的是STM8S207RB,使用库函数,还是挺好用的,没有发现什么大的问题,就是很多和keil不同的地方,对类型要谨慎,尤其是u8 u16 u32类型变量之间的运算
搞的不好,问题奇奇怪怪,就像第2条,
   希望用过的朋友继续补充!!!!!
沙发
stm_zy| | 2010-4-3 09:01 | 只看该作者
沙发坐上。好心楼主啊。

使用特权

评论回复
板凳
donkey89| | 2010-4-3 10:14 | 只看该作者
看来问题还真多啊,这些问题,都不容易找到原因并处理哦
多谢 楼主共享.STM8还是不够成熟啊

使用特权

评论回复
地板
有意思|  楼主 | 2010-4-3 11:26 | 只看该作者
看来问题还真多啊,这些问题,都不容易找到原因并处理哦
多谢 楼主共享.STM8还是不够成熟啊
donkey89 发表于 2010-4-3 10:14

芯片还行,就是编译器这块弱了点
用207做得产品,ESD打到1W2KV,还能顶的住,EFT也能过
现在就差CS传导抗扰还没做,下个礼拜去做下试试!

使用特权

评论回复
5
请看大屏幕| | 2010-4-3 19:30 | 只看该作者
dc vxczvxc

使用特权

评论回复
6
donkey89| | 2010-4-3 21:49 | 只看该作者
芯片还行,就是编译器这块弱了点
用207做得产品,ESD打到1W2KV,还能顶的住,EFT也能过
现在就差CS传导抗扰还没做,下个礼拜去做下试试!
有意思 发表于 2010-4-3 11:26

请问你用内部RC还是外部晶振呢?

使用特权

评论回复
7
有意思|  楼主 | 2010-4-4 10:27 | 只看该作者
请问你用内部RC还是外部晶振呢?
donkey89 发表于 2010-4-3 21:49

大哥,都说了跑24MHz啦,肯定是外部晶振咯

使用特权

评论回复
8
wxzhouqing| | 2010-4-7 22:54 | 只看该作者
同感,,,好芯片但是编译器太不咋地

使用特权

评论回复
9
zwll| | 2010-4-8 20:45 | 只看该作者
这么多问题啊

使用特权

评论回复
10
fbnfbn| | 2010-4-9 16:49 | 只看该作者
优化问题

问题1.       
        if (disp.Flicker)                disp.Flicker = 0;
        else                                disp.Flicker = 1;
       
        if (disp.Flicker)
        {
                test_buf++;
        }

第二个IF被优化掉.

问题2.
        if (wrctlr.Page & 0x01)或if ((wrctlr.Page & 0x01) == 0x01)
            {
               
        }
        else if (wrctlr.Page == 0x00)
        {
                (这里进不来)
        }
        else
        {
       
        }

下面则正常

            if (wrctlr.Page == 0x00)
            {
               
        }
        else if (wrctlr.Page & 0x01)
        {
       
        }
        else
        {
       
        }

使用特权

评论回复
11
mysde| | 2010-4-13 21:12 | 只看该作者
本帖最后由 mysde 于 2010-4-13 21:14 编辑

好贴!

7.EEPROM操作时,会关闭中断???
楼主确认207关中断?

使用特权

评论回复
12
mysde| | 2010-4-13 21:15 | 只看该作者
7.EEPROM操作时,会关闭中断???
这个不太可能吧!

使用特权

评论回复
13
zxs9933| | 2010-4-16 11:33 | 只看该作者
7.EEPROM操作时,会关闭中断???
楼主确认207关中断?
207操作eeprom时自动关闭中断。

使用特权

评论回复
14
lzymcu| | 2010-4-16 11:56 | 只看该作者
学习来了,我也发现有些同类问题

使用特权

评论回复
15
kimi.wang| | 2010-5-19 15:43 | 只看该作者
谢谢提醒! 学习中...

使用特权

评论回复
16
gtw| | 2010-5-19 19:24 | 只看该作者
EEPROM操作时,会关闭中断??????????

块写的时候关闭,字写的时候就不会关闭了

使用特权

评论回复
17
火箭球迷| | 2010-5-19 19:29 | 只看该作者
好心的楼主,值得表扬

使用特权

评论回复
18
火箭球迷| | 2010-5-19 19:29 | 只看该作者
让人很受益

使用特权

评论回复
19
秋天落叶| | 2010-5-19 21:17 | 只看该作者
调试中出现一些问题是很正常的

使用特权

评论回复
20
司徒老鹰| | 2010-5-19 22:28 | 只看该作者
收藏了

使用特权

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

本版积分规则

79

主题

331

帖子

0

粉丝