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

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


相关文章:
STM8S处理串口中断注意
STM8S处理串口中断注意_电子/电路_工程科技_专业资料。STM8S串口中断异常处理 ...关于STM8S外部中断问题 16页 免费 串口中断发送与接收 5页 免费 串口中断程序...
转一篇学习STM8的好文章
最好的办法,如果外部时钟出了问题,stm8 要傻傻的...***的三合一板使用的芯片是 s207s8t6,44 脚的,...可计数范围扩展到 32bit, 算是基本达到了我的要求...
STM8S-DISCOVERY 中文说明
8 2.2.2使用圣链接在其他应用程序STM8S。。。 8...8位基本定时器与8位预定标器 ——与时钟输出UART...也不是在产品或系统故障故障可能会导致人身伤害, ...
STM8S应用笔记—中断里的万年历
STM8S应用笔记—中断里的万年历_计算机软件及应用_IT/计算机_专业资料。使用STM...STM8S使用常用问题汇总 8页 免费 stm8s日程日志整理 11页 1下载券 【应用...
STM8参考手册
STM8参考手册_电子/电路_工程科技_专业资料。stm8RM0016 Reference manual STM8S microcontroller family Introduction This reference manual provides complete informatio...
STM8编译问题(STVD)解决与解释
STM8编译问题(STVD)解决与解释_电子/电路_工程科技_专业资料。STVD,STM8,编译...dxxd-stm8003-tm1804.elf - 2 error(s), 0 warning(s) 解决方法:在“...
STM8关于Optionbytes问题的解决方法
问题: 1、 Errors while setting configuration with MCU name STM8S105S4:...使用工具:轩微科技 STM8 编程器; 2、软件平台:轩微科技 STM8 编程器控制...
STM8S学习——操作单个IO口
STM8S 学习——简单操作单个 IO 口刚接触 STM8 系列单片机, 学习了简单端口...(针对某些特点引脚) 输出 大家根据上表对端口进行配置应该没有问题, 但是对某...
关于STM8S外部中断问题
关于STM8S外部中断问题_计算机软件及应用_IT/计算机_专业资料。STM8S外部中断 ...说明基本同时(<中断响应+中断跳转+局部变量赋值时间),理所当然全部应 该执行 ...
STM8教程-第十一章 BEEP 及其应用实例
BEEP 接口简单而实用 11.1 STM8S207 引脚的第二功能 STM8S207 大部分引脚...周期长而容易出错的问题 下图展示了选项字中所有的地址,这些地址不能直接操作。...
更多相关标签: