STM8S使用常用问题汇总.docx
- 文档编号:2386903
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:11
- 大小:397.53KB
STM8S使用常用问题汇总.docx
《STM8S使用常用问题汇总.docx》由会员分享,可在线阅读,更多相关《STM8S使用常用问题汇总.docx(11页珍藏版)》请在冰点文库上搜索。
STM8S使用常用问题汇总
STM8S使用常用问题汇总
==================================================================
按外设模块
======================================================================
============================== GPIO/AFIO =============================
=============================== Beep =================================
1、STM8S提供一个Beep引脚。
通过简单的配置即可输出1K、2K、4K三种频率信号驱动外部蜂鸣器。
由于默认情况下Beep输出引脚PD4为TIM2_CC1功能,为此我们需要打开“Option 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)$(TargetSName).sm8
输出S19格式的目标文件。
在其中增加或修改为:
chex -fi -o $(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).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 outside the zero page.
3、
Memory Models for code smaller than 64K
Stack Short (mods0) - Global variables are defaulted to short range
Any global object in long range will have to be accessed explicitly with the @near modifier unless accessed through a pointer.
Stack Long (modsl0) - Global variables are defaulted to long range
Any object in short range will have to be accessed explicitly with the @tiny modifier.
Memory Models for code larger than 64K
Stack Short (mods) - Global variables are defaulted to short range
Any global object in long range will have to be accessed explicitly with the @near modifier unless accessed through a pointer.
Stack Long (modsl) - Global variables are also defaulted to long range
Any object in short range will have to be accessed explicitly with 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 implementing I/O access.
5、内嵌汇编
1)、#pragma asm / #pragma endasm
2)、#asm / #endasm
3)、_asm("rim")
#pragma asm Extern char test;
XREF asmvar void func(void)
#pragma endasm {
if (test)
#asm /* no need for { */
SCF ;Set carry bit
RLC asmvar ;Access assembler variable
#endasm
else
test = 1;
6、
==================================================================
如非技术问题,或是帖子内容错误问题,请不要回帖!
增加 STM8 & STM32相关资料下载链接地址。
这份资料自己早就写了,作为一个模板提供给客户用于入门寻找资料的指引。
很奇怪,不知为何好像国内的大部分工程师都不懂如何利用网络去寻找自己需要的资源,有些甚至写得很详细的描述也不愿细看,遇到问题就只会出来摇旗。
唉,浮躁啊!
STM8S
STM8S官方开发资料(英文):
提供STM8S全部数据手册、参考手册、应用笔记及参考代码、固件库、官方开发板资料
STM8 CPU programming manual:
介绍STM8S 内核结构、汇编指令集。
STM8S Reference Manual:
英文版本:
中文版本(以英文Rev4版本翻译):
介绍STM8S全部外设结构,开发必看。
STM8S Firmware Library:
STM8S 固件库,全部外设的例程和底层库代码,安装后含固件库参考手册,解释全部函数和例程。
ST Toolset:
STM8S 集成开发环境,安装后包含IDE和编程软件,自带汇编编译器,支持外部调用C编译器。
当前版本v4.1.4:
STM8S C编译器下载地址,可以免费申请16K代码版本。
安装后,会要求注册,你按照要求填写注册信息后回复,会收到一个16K License文件,将它copy到COSMIC安装路径下的License目录,默认的路径…
打开STVD,选择菜单栏Tools-Options对话框,找到Toolset标签,Toolset中选择“STM8S COSMIC”,Root path中选择COSMIC路径,默认是“CXSTM8_16K”路径。
Getting started with the STM8S ,STM8S最小硬件系统设计向导:
STM8/128-EVAL evaluation board 用户手册,含原理图
STM8/128-EVAL 开发板上运行的例程和参考手册:
STM8S电容式触摸传感按键的代码库和用户手册:
Touch sensing software library (TSSL) frequently asked and anticipated questions (FAAQs)
----------------------------------------------------------------------------------------------------
STM32
STM32的官方网站:
STM32 官方开发资料下载地址:
STM32官方中文网站:
开发需参考的资料:
Datasheet 器件的引脚分布、电气参数特征;
ARM-based 32-bit MCU STM32F101xx and STM32F103xx firmware library/User Manual - STM32的全部外设API源代码/固件库用户手册
Reference Manual - STM32的外设结构描述;
STM32的参考手册(Reference Manual)中文版本,下载地址:
STM32F10x常见应用解析
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM8S 使用 常用 问题 汇总