当前位置:首页 >> 信息与通信 >>

STM8S使用常用问题汇总


STM8S 使用常用问题汇总 ================================================================== 按外设模块 ===================================================================== = ==============================

GPIO/AFIO ============================ = =============================== Beep ================================ = 1、STM8S 提供一个 Beep 引脚。通过简单的配置即可输出 1K、2K、4K 三种频率 信号驱动外部蜂鸣器。 由于默认情况下 Beep 输出引脚 PD4 为 TIM2_CC1 功能,为此我们需要打开“O ption Bytes”的 AFR7 选项。 打开 STVP,选择你使用的 MCU 型号,找到"Option Bytes"标签。将 AFR7 改 为"Port D4 Alternate Function = Beep"。

菜单栏选择"Program" -> "Current tab",成功后,即可正常使用 Beep 输 出功能。

==================================================================

=============================== Power/RESET ========================= 1、STM8S 为双电源 MCU,外设工作电压为 3V~5.5V,内核工作电压为 1.8V。因 MCU 内部已集成 1.8V 低功耗电压(LPVR)调节器,MCU 工作仅需提供一个供电电 源。在电源电路设计时,需要注意芯片 VCAP 引脚上要提供滤波电容,该电容用 于对内部 1.8V 供电滤波,容值不小于 470nF 为宜,瓷片和 Ta 电容均可,尽量选 择较低 ESR(等效串联电阻值)的型号。

2、MCU 芯片自带上电复位(POR)与掉电复位(BOR),工作时供电需注意 POR、BOR 工作范围。 1)、POR - Power-On Reset 上电复位 POR 的功能是在 VDD 电压由低向高上升越过规定的阀值(VIT+)之前,保持芯 片复位,当越过这个阀值(VIT+)后的一小段时间后(Reset temporization),结

束复位开始取复位向量执行指令。 2)、BOR - Brown-Out Reset 掉电复位 BOR 的功能是在 VDD 电压由高向低下降越过规定的阀值(VIT-)后,将在芯片 内部产生复位。

3、芯片复位地址指向 0x6000(内部 Bootloader 存放首地址),在检查无 Boot 操 作,PC 指向 0x8080 地址。0x8000~0x807F 为中断向量占用。

==================================================================

================================================================== 按使用开发环境 ===================================================================== = ============================== STVD ============================ = 1、STVD 如何输出 hex 文件 菜单栏 Project -> Setting 打开“Post_Build”标签,命令框原默认定义: chex -o $(OutputPath)$(TargetSName).s19 $(OutputPath)$(TargetSNam e).sm8 输出 S19 格式的目标文件。 在其中增加或修改为: chex -fi -o $(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetS Name).sm8 即可输出 hex 格式目标文件。 生成 hex 文件被输出到目录 项目“\Debug”目录下。 如图:

(原文件名:hex.png) 引用图片

============================== =

RIDE

============================

==================================================================

================================================================== 按编译器 ===================================================================== = ============================== STM8 ASM ============================ =

============================== COSMIC ============================ = 1、 @tiny - Zero Page(0x00~0xFF) 申明 :@tiny char a a) .bsct - 在 zero page 区域的初始化变量 b) .ubsct- 在 zero page 里面的未初始化变量 c) .bit - 位操作段 d) .share @near Zero page 以外的 RAM 区域 a) .bss - 未初始化变量区域; b) .data - 已初始化变量区域; c) .const - 常量区域 @far .fdata (large variable) .fconst .text @EEPROM 2、 Placing Data Objects in Short Range Memory @tiny char c; #pragma space extern [] @tiny Placing Data Objects in Long Range Memory @near char ext; #pragma space extern [] @near Placing Data Objects in the EEPROM Space @eeprom char var; #pragma space extern [] @eeprom @near Note:The @near modifier is necessary because the eeprom is located o utside the zero page. 3、 Memory Models for code smaller than 64K Stack Short (mods0) - Global variables are defaulted to short ran ge Any global object in long range will have to be accessed explicit ly with the @near modifier unless accessed through a pointer. Stack Long (modsl0) - Global variables are defaulted to long rang e Any object in short range will have to be accessed explicitly wit h the @tiny modifier. Memory Models for code larger than 64K

Stack Short (mods) - Global variables are defaulted to short rang e Any global object in long range will have to be accessed explicit ly with the @near modifier unless accessed through a pointer. Stack Long (modsl) - Global variables are also defaulted to lon g range Any object in short range will have to be accessed explicitly wit h the @tiny modifier

4、变量地址的绝对定位: char acia @0x20; #define acia *(char *)0x20 struct acia { char status; char data; } acia @0x6000 Note :that COSMIC C does support the pointer and #define methods of i mplementing I/O access. 5、内嵌汇编 1)、#pragma asm / #pragma endasm 2)、#asm / #endasm 3)、_asm("rim") #pragma asm Extern char test;

XREF asmvar #pragma endasm

void func(void) { if (test) #asm /* no need f SCF

or { */ ;Set carry bit RLC asmvar ess assembler variable #endasm else test = 1; 6、 ;Acc


相关文章:
stm8 cosmic 使用常用问题集锦
stm8 cosmic 使用常用问题集锦_计算机软件及应用_IT/计算机_专业资料。stm8 ...个人感觉是找不到 f__stext,所以说如果要编译大于 32k 的程序的时候还是不行...
stm8s一些注意事项
stm8s一些注意事项_电子/电路_工程科技_专业资料。stm8s一些注意事项 Stm8s 一些注意事项 因为没有中断的清除标志位,这一点与其它单片机是不同的。 EXTI_CR1 ...
STM8L问答
关于STM8L的一系列的问题的解答[1 问:] STM8L ...STM8S/L 拥有可靠的读保护功能,使能读保护后,...我说的 RF 是 ISM 频段的,现在常用的是 433/...
STM8总结说明
STM8L 开发板说明书.pdf(开发板中文说明书) 4. STM8 单片机编程入门.pdf(STM8 编译工具使用说明) 5. STM8S 中文芯片规格书.pdf(STM8S 系列 datasheet,...
STM8S系列单片机原理与应用 复习
STM8S系列单片机原理与应用 复习_工学_高等教育_教育专区。广工,单片机复习 STM8S 系列单片机原理与应用复习第1章 基础知识 1.1 计算机的基本认识 24 (1)地址...
STM8S应用笔记—中断里的万年历
STM8S应用笔记—中断里的万年历_计算机软件及应用_IT/计算机_专业资料。使用STM...STM8S使用常用问题汇总 8页 免费 stm8s日程日志整理 11页 1下载券 【应用...
STM8S_汇编
与汇编语言(17)--蜂鸣器 蜂鸣器是现在单片机应用系统中很常见的,常用于实现报警...STM8S使用常用问题汇总 8页 免费 stm8s汇编源码 流水灯 暂无评价 3页 免费 ...
关于STM8S外部中断问题
关于STM8S外部中断问题_计算机软件及应用_IT/计算机_专业资料。STM8S外部中断 ...所以这种情况是无法避免的 建议 LZ 使用查询方式,不知道时间来得及不,可以在主...
STM8使用小经验
具体资料请到 STM8S 的官方网页下载: http://www...还仍需一些配件才可以实现,在这个问题上我犯过错误...stm8 cosmic 使用常用问... 3页 免费 ST LINK ...
stm8s函数库应用笔记-待续
stm8s函数库应用笔记-待续_电子/电路_工程科技_专业资料。stm8s函数库应用笔记...GPIO_Pin: 要讀取狀態的引腳,可以用“或”方式選擇多個引腳, 可選值: GPIO_...
更多相关标签:
牧马人使用问题汇总 | iar for stm8使用教程 | stm8s中断函数的使用 | stm8s固件库使用手册 | stm8库函数使用手册 | stm8使用外部晶振 | stm8s使用外部晶振 | stm8s定时器tim4使用 |