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

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开启总中断的总结
基于STM8开启总中断的总结_信息与通信_工程科技_专业资料。关于STM8开启总中断的总结文档 基于STM8 开启总中断的总结在 IAR 编译器中 使用寄存器编程时一般方法为...
stm8s函数库应用笔记-待续
stm8s函数库应用笔记-待续_电子/电路_工程科技_专业资料。stm8s函数库应用笔记 STM8庫函數學習筆記之 GPIO 【整理者】61ic.com 【提供者】885783 【详细说明】...
STM8编译问题(STVD)解决与解释
STM8编译问题(STVD)解决与解释_电子/电路_工程科技...dxxd-stm8003-tm1804.elf - 2 error(s), 0 ...此时因为使用 STM8L 的固件库,造成一些不必要的...
STM8使用小经验
具体资料请到 STM8S 的官方网页下载: http://www...还仍需一些配件才可以实现,在这个问题上我犯过错误...stm8 cosmic 使用常用问... 3页 免费 ST LINK ...
STM8的IO口的使用
STM8的IO口的使用_电子/电路_工程科技_专业资料。STM8s 的通用 IO 口的使用总结 1、上拉输入:上拉就是把电位拉高,比如拉到 Vcc。上拉就是将不确定的信号...
stm8s函数库应用笔记-2015版
stm8s函数库应用笔记-2015版_计算机硬件及网络_IT/...GPIO_Pin: 要读取状态的引脚,可以用“或”方式选择...具有安全可靠的无故障时钟切换机制,可在程序运行中将...
STM8S处理串口中断注意
STM8S处理串口中断注意_电子/电路_工程科技_专业...关于STM8S外部中断问题 16页 免费 串口中断发送与...
STM8的按键程序学习笔记
程序硬件就是 STM8 的最小开发板搭建,的内部...STM8 的按键程序学习笔记本程序基于 STM8S105K4 ...注意事项:调试中遇到的问题有:按键的键值读取函数 ...
STM8S学习——操作单个IO口
STM8S 学习——简单操作单个 IO 口刚接触 STM8 系列单片机, 学习了简单端口...(针对某些特点引脚) 输出 大家根据上表对端口进行配置应该没有问题, 但是对某...
关于STM8S外部中断问题
关于STM8S外部中断问题_计算机软件及应用_IT/计算机_专业资料。STM8S外部中断 ...说明基本同时(<中断响应+中断跳转+局部变量赋值时间),理所当然全部应 该执行 ...
更多相关标签: