关于STM8S系列MCU开发的几个问题点
使用STM8S 开发产品有一段时间了,非常喜欢StM8S,性价比很高,成本很有优势。下面谈谈几个大家平时不太关注的问题点,说的不好的地方,还请大家多包涵,大家一起学习。1,开发工具的选择
STM8S 开发工具一般有两个IDE:ST Visual Develop,IAR。觉得没有很大差别,只是个编译调试工具,
个人使用习惯问题。下面两点要注意
(1)ST Visual Develop 编译的时候要加载cosmic 编译环境。
(2)如果要做bootloder分配FLASH的时候比较简单,ST Visual Develop 可以直接在setting-->Linker-->Category中的Input选项
直接操作就可以。IAR要修改.icf 文件,稍微麻烦点。
2,STM8S 低功耗模式,STM8S 低功耗模式有四种。我简单介绍一下 halt 模式
halt 模式是超低功耗,CPU,外设模块都停止掉,只能中断或者复位才能唤醒。
进入halt模式步骤一般如下步骤:
(1)关掉不必要的外设,设置外设引脚
(2)执行 _asm("halt"),此时就进入halt 模式。
(3)等待中断唤醒,初始化外设。
如下代码
tunr_off_sysytem()
__asm("halt")------进入Halt 模式,MCU不再运行,SP指针停在这里
tunr_on_sysytem()----中断唤醒之后,从这里开始运行
例外进入Halt 模式,是无法DEBUG的。
3,两个.h 文件
stm8s.h 芯片选项,文件开头就如下宏定义选择IC
/* #define STM8S208 */
/* #define STM8S207 */
#define STM8S105
/* #define STM8S103 */
/* #define STM8S903 */
stm8s_conf.h 这个文件里面主要是根据不同的IC型号包含不同的头文件
比如STM8S003只有UART1,STM8S005 只有UART2
4,编译的时候优化编译,可以选择
arm8686 发表于 2014-11-17 13:55
关于 stm8s.h 前面的定义,在编译器里头设置 stm8s 的具体系列,也是可以的。
这样的话,也就不需要在头文 ...
楼主,用的IAR,也是一种方法了,感谢分享 谢谢楼主的经验:) 关于 stm8s.h 前面的定义,在编译器里头设置 stm8s 的具体系列,也是可以的。
/* #define STM8S208 */ /*!< STM8S High density devices with CAN */
/* #define STM8S207 */ /*!< STM8S High density devices without CAN */
/* #define STM8S007 */ /*!< STM8S Value Line High density devices */
/* #define STM8AF52Ax */ /*!< STM8A High density devices with CAN */
/* #define STM8AF62Ax */ /*!< STM8A High density devices without CAN */
/* #define STM8S105 */ /*!< STM8S Medium density devices */
/* #define STM8S005 */ /*!< STM8S Value Line Medium density devices */
/* #define STM8AF626x */ /*!< STM8A Medium density devices */
/* #define STM8S103 */ /*!< STM8S Low density devices */
/* #define STM8S003 */ /*!< STM8S Value Line Low density devices */
/* #define STM8S903 */ /*!< STM8S Low density devices */这样的话,也就不需要在头文件那里去掉注释了。如下图:
页:
[1]