STM8系列单片机入门

Size: px
Start display at page:

Download "STM8系列单片机入门"

Transcription

1 ST( ( 意法半导体 ) 8 位微控制器系列 STM8 系列单片机入门

2 目录 1 STM8 系列微控制器简介 STM8S 系列 STM8L 系列 STM8A 系列 STM8 系列微控制器网站 STM8 集成开发环境简介 ST TOOLSET COSMIC IAR STM8 创建项目 使用 STVD 创建汇编项目 使用 COSMIC 创建 C 语言项目 使用 IAR 创建 C 语言项目 STM8 程序设计 STM8S 应用例程 STM8 开发工具 STX-RLINK ST-LINK ST-LINK/V STM8 EMC 设计注意事项...87

3 1 STM8 系列微控制器简介 1 STM8 系列微控制器简介 ST 的 8 位微控制器平台基于高性能 8 位内核, 配有先进的成套外设 该平台采用 ST 的 130 nm 嵌入式非易性存储器专有技术 STM8 通过增强型堆栈指针运算 先进的寻址模 式和新指令实现快速 安全的开发 STM8 平台支持三种主要产品线 : STM8S, 通用微控制器 STM8L, 超低功耗 EnergyLite 微控制器 STM8A, 汽车级微控制器 1.1 STM8S 系列 2009 年 3 月 4 日, 意法半导体发布了针对工业应用和消费电子开发的微控制器 STM8S 系列产品 STM8S 平台打造 8 位微控制器的全新世代, 高达 20 MIPS 的 CPU 性能和 V 的电压范围, 有助于现有的 8 位系统向电压更低的电源过渡 新产品嵌入的 130nm 非易失 性存储器是当前 8 位微控制器中最先进的存储技术之一, 并提供真正的 EEPROM 数据写 入操作, 可达 30 万次擦写极限 在家用电器 加热通风空调系统 工业自动化 电动工具 个 人护理设备和电源控制管理系统等各种产品设备中, 新产品配备的丰富外设可支持精确控 制和监视功能 功能包括 10 位模数转换器, 最多有 16 条通道, 转换用时小于 3 微秒 ; 先进的 16 位控制定时器可用于马达控制 捕获 / 比较和 PWM 功能 其它外设包括一个 CAN2.0B 接口 两个 U(S)ART 接口 一个 I2C 端口 一个 SPI 端口

4 1 STM8 系列微控制器简介 STM8S 平台的外设定义与 STM32 系列 32 位微控制器相同 外设共用性有助于提高不同产品间的兼容性, 让设计灵活有弹性 应用代码可移植到 STM32 平台上, 获得更高的性能 除设计灵活外,STM8S 的组件和封装在引脚上完全兼容, 让开发人员得到更大的自由空间, 以便优化引脚数量和外设性能 引脚兼容还有益于平台化设计决策, 产品平台化可节省上市时间, 简化产品升级过程 STM8S 主要特点 : 速度达 20 MIPS 的高性能内核抗干扰能力强, 品质安全可靠领先的 130 纳米制造工艺, 优异的性价比程序空间从 4K 到 128K, 芯片选择从 20 脚到 80 脚, 宽范围产品系列系统成本低, 内嵌 EEPROM 和高精度 RC 振荡器开发容易, 拥有本地化工具支持 STM8S 主要应用 : 汽车电子 : 传感器 致动器 安全系统微控制器 DC 马达 车身控制 汽车收音机 LIN 节点 加热 / 通风空调工业应用 : 家电 家庭自动化 马达控制 空调 感应 计量仪表 不间断电源 安全消费电子 : 电源 小家电 音响 玩具 销售点终端机 前面板 电视 监视设备医疗设备 : 个人护理产品 健身器材 便携护理设备 医院护理设备 血压测量 血糖测量 监控 紧急求助 STM8S 产品线 :

5 1 STM8 系列微控制器简介 1.2 STM8L 系列 2009 年 9 月 15 日, 意法半导体宣布, 首批整合其高性能 8 位架构和最近发布的超低 功耗创新技术的 8 位微控制器开始量产 以节省运行和待机功耗为特色,STM8L 系列下设 三个产品线, 共计 26 款产品, 涵盖多种高性能和多功能应用 设计工程师利用全新的 STM8L 系列可提高终端产品的性能和功能, 同时还能满足以市场为导向的需求, 例如, 终端用户对节能环保产品的需求, 便携设备 各种医疗设备 工业设备 电子计量设备 感应或安保设备对电池使用周期的要求 设计人员将选择 STM8L 这类超低功耗的微控制器, 以符合低功耗产品设计标准, 如 能源之星 IEA 的 1W 节能计划 或欧盟的 EuP 法令 这三条 STM8L 产品线都基于意法半导体的超低功耗技术平台, 这个平台采用意法半导体独有的超低泄漏电流优化的 130nm 制程 独一无二的技术优势包括在 1.65V 到 3.6V 的整个电源电压范围内达到 CPU 最大工作频率, 发挥 CPU 的全部性能 此外, 由于采用一个片上稳压器, 功耗与 Vdd 电压无关, 所以具有更高的设计灵活性, 并有助于简化产品设计 其它创新特性包括低功耗嵌入式非易失性存储器和多个电源管理模式, 包括 5.4µA 低功耗运行模式 3.3µA 低功耗待机模式 1µA 主动停止模式 ( 实时时钟运行 ) 和 350nA 停止模式 STM8L 可以在 4µs 内从停止模式唤醒, 支持频繁使用最低功耗模式 低功耗外设, 包括小于 1µA 的实时时钟和自动唤醒 (AWU) 模块, 有助于进一步节省电能 总之, 这个平台可将动态电流消耗降到 150µA/MHz

6 1 STM8 系列微控制器简介 STM8L 主要特点 : STM8 16 MHz CPU 内置 4-32 KB 闪存, 多达 2KB SRAM 三个系列 : 跨系列的引脚对引脚兼容 软件相互兼容 外设相互兼容 电源电压 :1.8 V-3.6 V ( 断电时, 最低 1.65 V) 超低功耗模式 : 保持 SRAM 内容时, 最低功耗 350nA 运行模式动态功耗低至 150μA/MHz 最先进的数字和模拟外设接口 工作温度范围 :-40 C 到 +85 C, 可高达 125 C 免费的触感固件库 STM8L 主要应用 : 便携医疗设备玩具和游戏公路收费电池供电设备个人保健产品保安传感器 STM8L 产品线 :

7 1 STM8 系列微控制器简介 1.3 STM8A 系列 意法半导体公司推出的 STM8A 是一款专门用于满足汽车应用的特殊需求的 8- 位 Flash 微控制器 这些模块化产品提供了真数据 EEPROM 以及软件和引脚兼容性, 适用的程序存 储器尺寸范围为 8KB 至 256KB 和 20 至 128- 引脚封装 所有器件的工作电压均为 3V 至 5V, 并且其工作温度扩展到了 145 C STM8A 主要特点 : 集成式真数据 EEPROM 16MHz 和 128kHz RC 振荡器 高效的 STM8 内核 : 在 16MHz 的频率下可以实现 10MIPS 的性能 应用安全性高 : 独立的看门狗定时器 时钟安全系统 所有产品均具有 LIN 2.0 和自同步功能 电源电压 :3.3V 和 5V 最高工作温度 :145 C STM8A 主要应用 : 激励器, 车体控制器, 传感器,DC 电机控制, 安全微控制器,LIN 节点, 汽车无线电, HVAC

8 STM8A 产品线 : 1 STM8 系列微控制器简介

9 1 STM8 系列微控制器简介 1.4 STM8 系列微控制器网站 可登录 ST 网站 寻找相关产品资料 或者直接登录 MCU 的页面 寻找相关的产品资料 也可以通过以下地址直接进入相关的 STM8 系列主要网址 STM8A 汽车电子产品系列 STM8L 超低功耗产品系列 : STM8S 标准产品系列 :

10 2 STM8 集成开发环境简介 2 STM8 集成开发环境简介 本章提示 : ST TOOLSET:ST 公司提供的免费 IDE, 支持汇编语言编程 可以通过外挂的方式, 支持第三方编译器 ( 推荐 Cosmic Software 公司的 C 编译器 ) COSMIC:Cosmic Software 公司提供的一款商业 IDE 目前, 提供了一个免费的 32K 代码大小限制的版本, 若需要编译 32K 以上的, 则需要购买 ( 推荐外挂于 ST TOOLSET 使用 ) IAR:IAR 公司提供的商业 IDE 目前, 提供了两个个免费版本 : 一个是的 8K 代码大 小限制版本 ; 另一个是 30 天评估的版本 在开发前, 首先要准备好相应的软件和 C 编译器 本章介绍了当前几个主流的 STM8 集成开发环境 可根据自己的需要, 选择不同的集成开发环境 2.1 ST TOOLSET ST TOOLSET 是 ST 提供的微控制器开发套件 ST TOOLSET 包括两部分软件 :ST Visual Develop (STVD) 和 ST Visual Programmer (STVP) 支持 STM8 全系列的开发 ST Visual Develop (STVD) 是 ST 微控制器的集成开发环境 主要是面向 ST 的 8 位微控制器产品 STVD 可以创建, 调试以及烧录 ST 微控制器 STVD 提供了一个免费的汇编编译器 用户可使用汇编语言直接在此环境中 (STVD) 编写汇编程序 ST Visual Programmer (STVP) 是 ST 提供的用于生产或批量的专用烧录软件 ST TOOLSET 可从 ST 网站上下载 : 或者尝试直接从下面的连接 下载 :

11 2 STM8 集成开发环境简介 在下载安装完成后, 一般会在桌面产生两个快捷方式 : ST Visual Develop 和 ST Visual Programmer ST Visual Develop(STVD): 编辑调试烧录软件 ST Visual Programmer(STVP): 烧录软件 2.2 COSMIC Cosmic Software 公司有着 20 多年的历史了 其产品也赢得了一些著名厂商的认可 Cosmic Software 公司 (Cosmic Software Inc.) 的 Cosmic C 编译器 (Cosmic C compiler) 及全 套嵌入开发工具支持 STM8 系列产品的开发 Cosmic 产品包括 C 交叉编译器 汇编 连接器 ANSI 库 仿真器 硬件调试器和易于使用的集成开发环境 (IDEA) 目前,Cosmic Software 公司提供了 16K 和 32K 代码大小限制的全功能的免费软件 此 软件可从其公司网站上免费下载, 网址是 : 在进入下载页面后, 一般会出现一个注册页面, 如下图所示 按照其要求填写, 提交后, 便可获得一个 C 编译器的下载连接

12 2 STM8 集成开发环境简介 或者尝试直接从下面地址下载 32K 代码大小限制的版本 :( 不需要下载注册了 ) (32K 代码限制版本, 免费 ) (16K 代码限制版本, 免费 ) 注意 : License 文件 : 若要使用免费的 C 编译器, 还需要向 Cosmic Software 公司申请一个 license 文件 并且限制一台计算机对应一个 license 文件 获得 license 的 2 种方法 : 第一种方法 : 在安装过程中, 安装向导会引导注册, 获得 license 文件 第二种方法 : 通过直接发送 的方式, 获得 license 文件 下面详细介绍两种获得获得 license 文件的方法 第一种方法 : 通过安装向导获得 COSMIC 的 license 文件 : COSMIC C 编译器在安装过程中, 出现下图的提示 提示创建桌面图标和申请软件使用 协议 可以选择 Register your license 来申请 license 文件, 选择 Next

13 2 STM8 集成开发环境简介 接着会弹出下面的对话框, 意思是注册获得一个免费的版本, 收到一个 license 文件后, 就可使用该软件 继续! 根据要求填写下面的注册信息, 要用英文填写完整 选择 Register by , 此时 会启动计算机系统默认的邮件软件, 发送申请协议的邮件 注意, 带 * 号的一定要填写 在 Country 中一定要注明 China 建议用英文书写 特别注意是, 申请时发送 的程序, 是 WINDOWS 默认的程序 可以通过 Internet Explorer 的菜单 工具 >Internet 选项 来查看或指定系统默认的邮件程序

14 2 STM8 集成开发环境简介 如果填写准确完整无误后, 则可发出 Cosmic Software 公司会回复一个 , 并带有一个 license.lic 文件 (Cosmic Software 公司回复时间不确定, 有时差!!! 若几天没有收到回复, 则可能是注册信息不完整,Cosmic Software 无法回复 ) 将获得的 license.lic 文件拷贝到安装目录下的 license 目录下即可 一般地, 默认目录为 C:\Program Files\COSMIC\CXSTM8_32K\license 这样就可以使用 C 编译器了 第二种方法 : 通过直接发送 获得 license 文件 : 如果在安装过程中没有申请协议, 也可以通过直接发送 的方式来获得 lincense.lic 文件 在 COSMIC 的安装目录下 ( 一般地, 默认安装目录是 C:\Program Files\COSMIC\CXSTM8_32K), 找到 lmreg32k.exe 文件, 运行获得本计算机的相关信 息 (Product information)

15 2 STM8 集成开发环境简介 打开邮件程序, 编写一个 , 以获得一个 lincense.lic 文件 下面是一个例子 : 收件人 : stm8_32k@cosmic.fr 标题 : STM8 32k License Request The information below should be sent to stm8_32k@cosmic.fr to obtain a license for this product Registration Information for: User: Wang Company: Company Name Address: PuDong South Road PuDong,Shanghai , P.R.China Country: China Phone: Fax: Product Information: PRODUCT=STM8 32K VERSION HOSTID=001b7886a9cf USER=Administrator DISPLAY=SH HOSTNAME=SHPC DISK_SERIAL_NUM=608e97ea 说明 : Registration Information for: 需要填写完整准确无误 Product Information: 信息需要通过运行 lmreg32k.ext 来获得 将获得的 license.lic 文件拷贝到安装目录下的 license 目录下即可 一般地, 默认目录 为 C:\Program Files\COSMIC\CXSTM8_32K\license 这样就可以使用 C 编译器了

16 2 STM8 集成开发环境简介 COSMIC 公司为用户提供了一个集成的开发环境 (IDE), 其运行后界面如下图所示 : 建议 : 建议将 COSMIC C 编译器外挂于 ST TOOLSET(STVD) 中, 使用 ST 提供的集成开发 环境 STVD 来进行软件的调试开发

17 2 STM8 集成开发环境简介 2.3 IAR IAR Systems 推出开发工具 STM8 系列嵌入式设计工作台 (EWSTM8), 支持 8 位微控制器市场主流的 STM8(STM8A,STM8L,STM8S) 系列产品 IAR EWSTM8 嵌入式设计工作台提供一整套开发工具, 包括一个项目管理器 编辑器和项目创建工具 (C 语言编译器和链接器 ) 该工作台还为开发人员提供调试功能, 可以连接意法半导体价格低廉的在线调试器 ST-LINK 以及先进的高端仿真器 STice IAR 提供 8K 代码限制和 30 天评估版的 C 编译器 可从 网站上直接下载 安装完成之后, 运行 IAR 集成开发环境, 其界面如图所示 :

18 3 STM8 创建项目 3 STM8 创建项目 本章提示 : 本章主要介绍如何使用不同的编译器建立 STM8 的应用项目 STVD: 创建一个汇编语言项目 COSMIC: 创建一个 C 语言项目 IAR: 创建一个 C 语言项目 3.1 使用 STVD 创建汇编项目 新建 从开始菜单启动 ST Visual Develop(STVD) 在 STVD 中选择菜单 File>New Workspace, 新建一个工作区 如下图所示 : 在出现如下图的对话框中, 选择 Create workspace and project, 如下图所示 :

19 3 STM8 创建项目 点击 确定, 出现如下对话框, 在 Workspace filename 中输入 workspace 名字 : demo, 选择 workspace 所要保存的路径 :c:\stm8asm 在 workspace filename 完成后, 点击 OK, 在 project filename 中输入 project 名字 : demo 在 Project location 中选择 project 保存的路径, 一般与 workspace 保存在同一个目录下 选择工具链 Toolchain: ST Assembler Linker,ST Assembler 是 ST 提供的免费的汇编编译器 Toolchain Root 一般是默认安装的 如果在 ST TOOLSET 安装过程中改变了安装目录, 需要确认安装路径 相关设置如图所示 :

20 3 STM8 创建项目 在 project filename 完成后, 点击 OK, 在 MCU Selection 对话框中, 选择 MCU 型 号 可以在空白框中输入型号中的部分字符可快速筛选目标型号 如图所示 : 至此,workspace 和 project 创建完成 完成后界面如下图所示 :

21 3 STM8 创建项目 STVD 在项目中自动添加了 main.asm, mapping.asm 和 mapping.inc 文件 其说明如下 : 文件 说明 main.asm - 基本的程序架构 - 文件中包含了中断向量和中断函数 (NonHandledInterrupt), 用 户可根据此进行参考修改 - 清 RAM0,RAM1 和清堆栈程序 用户可删除此部分程序, 自己进行 变量的初始化 建议在程序开始时对自己定义的变量初始化 mapping.asm - 定义了段的名字和地址 (ram0, ram1, stack, eeprom, rom, vectit) mapping.inc - 定义了段 (ram0,ram1,stack) 的起始和结束地址 从 C:\Program Files\STMicroelectronics\st_toolset\asm\include ( 默认安装目录 ) 找到相关 MCU 型号的寄存器定义文件到当前工程目录下 ( 本例中用到 STM8S207C_S.ASM 和 STM8S207C_S.INC), 并添加到工程项目中 添加后的 workspace 如下图所示 : 用户需要根据自己的要求, 修改 main.asm 和 interrupt.asm 文件 在修改中断时, 先在中断向量表中找到对应的中断地址, 把 NonHandledInterrupt 中 断名字修改成自定义的中断名字, 其他部分不需要修改 ($ 是编译器定义的地 址 ) 然后使用一个 interrupt 关键字定义一个中断函数

22 3 STM8 创建项目 下面是一个自定义中断函数的例子 : ; 自定义中断函数 interrupt My_Interrupt_Name My_Interrupt_Name.l ; ; 中断处理代码 ; iret ; 中断向量表 segment 'vectit' dc.l {$ main} ; reset dc.l {$ My_Interrupt_Name} ; trap ; ; 其他中断 ; end 说明 : dc.l {$ main}, 复位向量在复位后直接跳转到 main 处执行

23 3 STM8 创建项目 修改 main.asm, 并说明如下 : stm8/ ; 第一行必须保留而且要顶格写. 指定目标单片机的指令集 ;* 包含文件 #include "mapping.inc" #include "stm8s207c_s.inc" ;* 常量定义 #define MYDF1 3 MYCNT1 EQU 2 ;/* ram0 区变量定义 segment 'ram0' ; 从此行以后是 ram0 变量区 MY_RAM0_VAR1 DS.B 1 ; 保留 1 个字节的变量空 间 ;/* ram1 区变量定义 segment 'ram1' ; 从此行以后是 ram1 变量区 MY_RAM1_VAR1 变量空间 DS.B 128 ; 定义 128 个字节的一组 ;* 主程序 (ROM) segment 'rom' ; 从此行以后是 rom 代码区 main.l ; 初始化 main_loop.l ; JRA main_loop Subroutine.l Ret ;* 中断程序 interrupt NonHandledInterrupt NonHandledInterrupt.l Iret ;* 中断向量映射 segment 'vectit' irq28 irq29 dc.l {$ main} dc.l {$ NonHandledInterrupt} dc.l {$ NonHandledInterrupt} ; ( 此处省略 ) ; reset dc.l {$ NonHandledInterrupt} ; dc.l {$ NonHandledInterrupt} ; end ; trap ; irq0 Include 区常量区 RAM0 变量区 RAM1 变量区主程序区子程序区中断程序区中断向量映射

24 3 STM8 创建项目 编译 源程序编辑完成后, 可选择菜单 Build>Rebuild All, 编译工程 如下图所示 : 若源程序正确无误, 会显示如下 : 若要查看编译后的程序代码的大小, 可找到工程目录下的 Debug 目录, 在 Debug 目录 下有个.map 文件 本例是 stm8asm.map, 如下所示 :

25 3 STM8 创建项目 用文本编辑器打开.map 文件, 可查看使用的资源的大小 在 stm8asm.map 文件里, 记录了 ram0,ram1,rom,stack,eeprom,rom 等的使用情况 本例的代码地址范围是 : rom' byte from 8080 to 81F5 程序代码大小是: 81F = 175(HEX) = 373 个字节 调试 本节介绍在 ST Visual Develop 环境中的软件调试说明 首先, 先选择调试与仿真的工具 可通过菜单 Debug instrument>target Settings 来 设置, 如下图所示 : 在弹出的对话框中, 列表中列出了此开发环境支持的所有工具 常用的在线调试工具是 Swim Rlink 和 Swim ST-LINK,Simulator 是软件仿真

26 3 STM8 创建项目 可从菜单选择 Debug> Start Debugging, 可进入调试状态, 如下图所示 : 可通过 View 的下拉菜单的菜单项进行不同的显示, 如图所示 进入调试状态后, 界面如下图所示 :

27 3 STM8 创建项目 烧录 使用 STVD 中烧录 选择 Tools > Programmer, 出现如下烧录界面 请确认烧录的 Target Device 型号, 选择正确的硬件设备 Settings 选项 对于 STM8 系列单片机的 Hardware> hardware 可选择 RLINK,ST-LINK,STICE 等工具进行烧录 Run STVP 可以直接运行 STVP, 若不想使用 STVD 的编程器 Memory Areas 选项

28 3 STM8 创建项目 Memory 可以选择 DATA MEMORY 和 PROGRAM MEMORY DATA MEMROY:EEPROM 数据 PROGRAM MEMORY: 程序点击 Add 可以添加要烧录的目标文件, 如图所示 OPTION BYTE 选项 根据应用配置合适的 OPTION BYTE 选项

29 3 STM8 创建项目 Program 选项 配置完成之后, 点击 Start 即可可以进行烧录 使用 STVP 烧录 可以运行独立的烧录软件 ST Visual Programmer (STVP), 运行 开始 >ST Toolset>Development Tools > ST Visual Programmer 如图所示 :

30 3 STM8 创建项目 烧录软件配置 运行 Configure > Configure ST Visual Programmer, 如图所示 : Hardware: 烧录工具 Port: USB Programming mode: SWIM Device: 选择要烧录的型号 打开要烧录的目标文件 File > Open DATA MEMORY: EEPROM 数据区 配置 OPTION BYTE 选项

31 3 STM8 创建项目 Value: 可直接在此框内直接输入配置好的 OPTION BYTE 值,OPTION BYTE 内容根 据 Value 的值自动配置好 以 STM8S105S4 为例说明 OPTION BYTE 配置 : ROP: 是读出保护设置 若设置了 ON, 那么程序是就无法读出 (ST 的保密性比较高 ) UBC [7:0]: 用户启动代码区 一般用户在做 IAP 时, 需要保护的代码部分设置 AFR[7:0]: 备选功能重映射选项 通过此来设置需要的功能 比如同一个引脚会有不同的功能 可通过此选项来设置需要的功能 HSITRIM: 高速内部时钟调节寄存器大小 LSI_EN: 低速内部时钟使能 IWDG_HW: 独立看门狗 WWDG_HW: 窗口看门狗激活 WWDG_HALT: 当芯片进入停机模式时窗口看门狗的复位动作 EXT_CLK: 外部时钟选择 CKAWUSEL: 自动唤醒单元 / 时钟 PRSC[1:0]: AWU 时钟预分频 HSECNT[7:0]: HSE 晶体振荡器稳定时间 BOOTLOADER ENABLE: 如果用户使用 UART 来下载程序, 可通过此选项位来设置 更多的信息, 可参考 STM8S105S4 的数据手册

32 3 STM8 创建项目 汇编语言相关说明 汇编源代码行格式 程序的第一行, 必须顶头写一条 stm8\,stvd 会调用 stm8.tab 描述文件 写错或不写 都不能编译 stm8\ 汇编源代码行的一般格式如下 : [label[:]] <space> [opcode] <space> [operand] <space> [;comment] 一个源代码行的例子, 如下 : 下面对源代码行进行一些说明 : 在汇编语言中, 任何超过 30 个字符的 label 都会被编译器截短 并且会给出一个警告 若截短后两个符合同名, 则会报一个错误 Lable 的长度大小, 默认地, 是 WORD 类型 (2 个字节长 ) 也可以通过加后缀来指定 label 的长度.b for byte.w for word.l for long 例如 : lab equ 0 ; word-size label (default) label1.b equ 5 ; byte-size label label2.l equ 123 count ds.b pointer ds.w ; long label segment byte at: 80 ram bytes ; force the size of the label to bytes ; byte-size label ; byte-size label with a word-size ; space reserved at this address ; 字节 label, 在此地址保留一个 word-size 空间

33 3 STM8 创建项目 在多文件项目中, 如果一个程序文件中要引用另一个程序文件定义的 label, 定义此 label 的另一个程序文件必须声明为 PUBLIC, 引用此 label 的程序文件必须声明此 label 为 EXTERN EXTERN 和 PUBLIC 必须是成对出现 例如 : module 1 EXTERN _sig1.w ; import _sig1 EXTERN _sig2.w ; import _sig2 PUBLIC _handlers ; export _handlers _handlers: jp _sig1 jp _sig2 segment byte P end ; define _handlers ; refer to _sig1 ; refer to _sig2 module 2 EXTERN _handlers.w ; import _handlers (addr. is a word) PUBLIC _sig2 ; export _sig2 segment byte P _sig2: ; define _sig2... call _handlers ; refer to _handlers... ret end 数字表达方式 汇编编译器默认地支持 MOTORALA 数字格式 也可以通过使 用.INTEL,.TEXAS,.ZILOG 指令支持 INTEL,TEXAS,ZILOG 格式 格式 Hex Binary Octal 当前 PC 指针 Motorola $ABCD or %100 ~665 *(use MULT for &ABCD MULTIPLY) Intel 0ABCDh 100b 665o or 665q $ Texas >ABCD?100 ~665 $ Zilog %ABCD %(2)100 %(8)665 $ 例如 : lab03 equ 10 ; 十进制数 10 lab04 equ $10 ; 十六进制数 10 ld A,$ffff ld A,#$cb ld A,#100 ; 长寻址模式 ; 立即数寻址模式 ; 十进制记数法

34 3 STM8 创建项目 寻址模式 不同的寻址模式, 操作数的目标地址范围也不同 不同寻址模式范围, 如下 : 0-$FF, 短寻址模式,1 个字节 $100-$FFFF, 长寻址模式 2 个字节 $10000-$FFFFFF, 扩展寻址模式,3 个字节 在应用中, 若对数据存取有速度要求, 建议将一些存取速度要求快的变量存放到 0- $FF 区间, 也就是 ram0 区 这样, 数据的存取速度最快 汇编伪指令 段伪指令 SEGMENT STM8 汇编编译器是通过 SEGMENT 来组织和管理代码和数据的 可以通过 SEGMENT 伪指令, 来定义可寻址空间的指令代码和数据 SEGMENT 的格式如下 : [< 名称 >] SEGMENT < 排列类型 > < 组合 > < 类别 > [COD] [< 名称 >]: 此项可以省略, 但当一个段在多个地方使用时, 必须用名字定义, 且名称 应相同, 同一名称的多个段, 将被分配到一个相邻的地址空间 名称最多可以用 11 个 字符表示 < 排列类型 >: 在定义段的时候, 该段的起始地址被自动地分配到表 2 所要求的地址, 默认的排列类型是 Para 排列类型 性质 举例 Byte 没有专门要求, 任何地址都可以 Word 起始地址是偶数 2 Long 起始地址是 4 的倍数 4 Para 起始地址是 16 的倍数 10h 64 起始地址是 64 的倍数 40h 128 起始地址是 128 的倍数 80h Page 起始地址是 256 的倍数 100h 1K 起始地址是 1024 的倍数 400h 4K 起始地址是 4096 的倍数 1000h

35 3 STM8 创建项目 < 组合选项 > 关键字没有 AT, 开始地址 [- 结束地址 ] Common 性质如果没有该组合选项, 当前定义的段就被分配到相同类中最后一个已被分配段的后面定义一个新的类所在的存储空间的起始地址和结束地址 一个类的起始地址和结束地址只能定义一次, 结束地址部分可以省略 开始地址和结束地址均为十六进制数所有同类且同名的用 common 定义的段, 将被分配到具有相同起始地址的存储区 地址由连接器定义 < 分类名称 > 类是段的组合 类的概念本身没有任何其他属性, 可以创建多个类 类的概念可以根据 不同内存区的特性, 帮助组织可寻址空间 下表列出了一组典型的分类的例子 类名称 ( 举例 ) 类的类型与用途 ROM 只读存储器, 用于存储程序 RAM0 读写存储器, 在 0 页 ( 地址在 100h 以下 ) RAM 读写存储器, 用于 16 位地址区 STACK 读写存储器, 用于堆栈 IO 用于 I/O 寄存器 ( 地址始终在 0 页 ) VECTOR 中断矢量地址区 [COD] 选择项 [COD] 是一个 0-9 的数字, 如果没有此选项, 默认值是 汇编结束指令 END 结束 这条伪指令用在程序文件的末尾, 表示某个程序文件的结束 包含文件不需 END 作为 定义变量伪指令 DS 从编程角度上讲, 变量是一段用于保存特定数据对象的内存 伪指令 DS 的功能是 : 从指定地址开始保留 DS 之后表达式的值所规定的数量的存储单元, 以备使用 变量数据的存储类型由伪指令 DS.B DS.W 和 DS.L 来指定, 它们分别表示存储 1 字节 1 个字或者双字的数据, 它们的格式如下 : 操作码 操作数 DS.B [ 需分配字节的数量 ]

36 3 STM8 创建项目 DS.W [ 需分配字的数量 ] DS.L [ 需分配长字的数量 ] 若在上述指令中未指定需分配的数量, 则默认值为 1 DS 指令前可加一个标号, 由 DS 定义的操作数的首字节地址与标号名称相关联, 也与前一条指令所分配的存储地址相关联 它表示指定类型的变量从与标号相关的地址开始分配 例 : segment byte at 50 RAM ; 假设 abyte 起始地址为 50h abyte: DS.B 1 ; 定义一个字节变量 aword: DS.W 1 ; 定义一个字变量 汇编后,aByte 的地址将是 50h, 从 50h 开始保留一个字节 ;aword 地址为 51h, 从 51h 开始保留 1 个字或 2 个字节 通过伪指令 SEGMENT 指定类与段的地址, 汇编程序即可 将 DS 定义的变量分配到确定的地址 定义常量伪指令 DC 在汇编程序中, 常量可以是 2 种类型之一 : 常数或者符号 定义常量的伪指令有如下几 条 :DC.B DC.W DC.L BYTE WORD LONG 和 STRING DC 伪指令与上述的 DS 伪指令工作方式相似, 它的功能是从内存指定单元开始定义 ( 存储 ) 若干个字节的数值或 ASCII 码字符, 常用于定义数据常数表 它们的格式如下 : 操作码 DC.B DS.W DS.L 操作数 < 表达式或字符串 >[,< 表达式或字符串 > ] < 表达式 >[,< 表达式 > ] < 表达式 >[,< 表达式 > ] 它们将内存设置为操作数或指定的值 例 : DC.B 1,2,3 ; 定义了 01,02,03 共 3 个字节 DC.B HELLO,03 ; 定义了 48,45,4C,4C,4F,03 共 6 个字节 DC.W 1,2,3,4,$1234 ; 定义了 0001,0002,0003,0004,1234h 共 5 个字 DC.L 1,$ ; 定义了 , 共 2 个长字 项目设置 对项目的管理与设置, 一般是通过菜单 Project>Settings 来设置的 可依据项目的 需要进行设置 下面对 ST LINK 选项, 做个说明 选项内容如下图所示 :

37 3 STM8 创建项目 默认地,Auto 是自动选择的 也就是说,STVD 在创建工程的时候, 会自动创建一个 mapping.asm 和 mapping.inc 文件, 并自动关联 mapping.asm 文件 在两个 mapping 文件 里面定义了段的名字和开始结束地址 在 segment 列表中, 右击会出现如下菜单, 可以对段进行 添加新段 更改 删 除等操作 若有更改,STVD 则会自动更新 mapping.asm 和 mapping.inc 文件 Add Segment, 可以创建自己的段 在新定义的段里, 可以存放一些自定义的数据和 程序代码, 便于管理和分配资源 一般地, 使用默认的就可以满足要求了 Change, 可以更改段的起始结束地址 默认地, 在定义的地址范围内由编译器来进 行管理和资源分配的, 用户无需关心 如变量, 编译器会自动分配其地址 自定义段和变量 : 在一些特殊的应用中, 用户想自己来管理一些特殊的变量 如在 ram1 段中开辟 2 个字节的空间, 由自己来管理分配 可添加一个新段 myram1, 修改起始结束地址,, from 0x100 to 0x101 修改 ram1 的地址为 0x102 如下图所示 :

38 3 STM8 创建项目 当添加新段完成后, 在 mapping.inc 文件里面, 会自动修改 ram1 的起始结束地址范围 #define ram1_segment_start 102 在 mapping.asm 文件中, 会自动添加新段 'myram1': WORDS ; The following addresses are 16 bits long segment byte at 'myram1' 在程序中, 声明 'myram1' 就可以使用管理自定义的段和变量了 WORDS SEGMENT 'myram1' MYRAM1_VAR1 DS.B 1 MYRAM1_VAR2 DS.B 1 自定义 mapping 文件 若想定义自己的 mapping 文件, 则可取消 Auto 选项 如下图所示 : 在这种情况下, 用户必须来写自己的 mapping 文件 ( 可参考 STVD 自动生成的文件 ); 或者在程序中用 segment 伪指令来定义 输出目标文件格式 : STVD 默认输出是.s19 文件 (Motorla 格式 ) 可选择输出 Intel 的 HEX 文件 在 ST 的 工具中一般都使用默认的 s19 格式文件

39 3 STM8 创建项目 3.2 使用 COSMIC 创建 C 语言项目 COSMIC 提供了一个的 IDE 环境, 用户可使用 COSMIC IDE 进行软件的开发 建议在 STVD 中外挂 COSMIC C 编译器, 进行软件开发 STVD 提供了比较友好的开发 调试界面 STVD 设置 要用 STVD 开发 COSMIC C 语言, 首先要在 STVD 中对 COSMIC C 编译器进行设置 运行 ST Visual Develop 集成开发环境, 选择菜单 Tools -> Options 在出现的对话框中选择 Toolset 选项卡. 再选择下拉菜单, 选中 STM8S Cosmic 设置编译器的安装路径 然后选择 确定 本例中选择的 Root path 是 :C:\Program Files\COSMIC\CXSTM8_32K 至此, 就完成了 COSMIC C 编译器的设置完成 注意 : 很多人在此很是疑惑, 点击 确定 后, 会弹出一个提醒窗口 它只是提醒你是否指定了正确的路径 如果你确认路径无误后, 不要管那个提醒就可以了 在创建一个 new project 时, 在 toolchain 中选择 COSMIC 时,Toolchain Root 会自动关联显示出此处设置的路径 就是能让 STVD 能找到 COSMIC C 编译器 若关联不对, 则需要重新设置或重新指定

40 3 STM8 创建项目 新建 在主菜单条中, 选择 File > New Workspace 在 New Workspace 窗口中, 点击 Create workspace and project 图标, 然后点击 OK 1. 在 Workspace Filename 字段中, 输入一个 workspace 名字 2. 选择 workspace 和项目保存的路经 结果 : STVD 的 Workspace 窗口包含一个 workspace 图标 工作目录中包含文件 : <workspace name>.stw, <workspace name>.wsp and <workspace name>.wed

41 3 STM8 创建项目 3. 在 Project filename 字段中输入一个项目名字 4. 在 Project Location 字段中选择一个工程保存的路经 默认地, 使用 workspace 使用的 路经 5. 在 Toolchain 列表框中, 选择 STM8 Cosmic 6. 在 Toolchain Root 字段中, 输入路径 然后点击 OK 7. 在 MCU Selection 窗口中, 选择需要的 MCU 也可以通过 Project Setting 窗口来选择 MCU 8. 点击 OK 9. 保存 workspace 和 project

42 3 STM8 创建项目 main.c 和 stm8_interrupt_vector.c 是自动添加的. 用户只需要根据不同的 MCU 的中 断向量不同填写相应的中断处理函数即可. 择 打开 Project->Settings..., 可以对当前的工程进行设置, 包括 C 编译器 连接器等选 编译 选择菜单 Build>Rebuild All, 编译当前的工程 如下图所示 :

43 3 STM8 创建项目 若程序正确无误, 会显示如下 : 若要查看编译后的程序代码的大小, 可找到工程目录下的 Debug 目录, 在 Debug 目录 下有个.map 文件 调试 首先要设置好调试工具, 可通过菜单 Debug instrument>target Settings 来设置, 如 下图所示 : 在弹出的对话框中, 列表中列出了此开发环境支持的所有工具 一般常用工具是 Swim ST-LINK 可从菜单选择 Debug> Start Debugging, 可进入调试状态, 如下图所示 :

44 3 STM8 创建项目 烧录 请参考 STVD 汇编语言程序设计章节中的 烧录 因界面一样, 操作类似 3.2.6COSMIC C 语言相关说明 COSMIC C 语言项目设置 通过菜单 Project>Setings, 可以对当前工程进行项目设置 包括编译器选项和连 接选项等 C Compiler 选项 : 说明 : Memory Models: 通过下来菜单, 可选择不同的存储器模式 如下图 :

45 3 STM8 创建项目 存储器模式说明如下 : 代码小于 64K STM8 编译器支持两种存储器模式 指针 (2 个字节 ) - stack short (mods0) 全局变量默认 short range 类型 任何在 long range 范围的全局变 来访问, 除非通过指针访问 - Stack Long (modsl0) 全局变量默认为 long range 类型 任何在 short range 类型中的变量必 来访问 代码大于 64K STM8 编译器支持两种存储器模式 指针 (3 个字节 ), 数据指针默认 类型 (2 个字节 ), 明确地声明 - Stack Short (mods) 全局变量默认 short range 类型 任何在 long range 范围的全局变量 来访问, 除非通过指针来访问 - Stack Long (modsl0) 全局变量默认为 long range 类型 任何在 short range 类型中的变量必 来访问 Linker 选择 :

46 3 STM8 创建项目 说明 Std. libraries COSMIC C 编译器提供了整数和浮点运算库 可通过选择 Int 和 Float 来 实现 COSMIC 会自动关联相应的函数库 Start-up file: 程序跳转到 main 函数前执行的启动代码 从 Category 下拉菜单中 可以选择 Input 来查看段的配置情况 lkf 文件以及中断 文件等 可根据需要 进行自定义设置 一般地 默认的设置就可以满足要求了 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 46 / 88

47 3 STM8 创建项目 COSMIC C 语言段定义(Section) COSMIC C 编译器使用默认预定义的段输出不同部分的机器码 默认段是 段.text.const.fconst.data.bss.bsct.ubsct.fdata.eeprom.bit 描述 可执行代码 文本字符和常数 大常量(@far) 初始化变量(@near) 未初始化变量(@near) 零页内的初始化变量(@tiny, 默认) 零页内的未初始化变量(@tiny,默认) 大变量(@far) EEPROM 位变量 COSMIC C 语言启动程序 COSMIC 有一个启动程序 就是在单片机复位之后 在程序跳转至 main 函数之前 插 入一段汇编代码做一些初始化的动作 其包括 - 段的初始化 如 bss 拷贝 ROM 到 RAM(如果程序中需要的话 一般是指 COSMIC 内嵌的的拷贝函数) 堆栈指针初始化 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 47 / 88

48 3 STM8 创建项目 编译器提供了几个启动文件 对数据进行初始化设置 可选择的文件及初始化说明 如 下所示 数据类型 Short int 和 int 默认为 2 个字节 Long int 默认为 4 指针 short range 默认为 1 指针 long range 默认为 2 指针默认为 3 个字节 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 48 / 88

49 3 STM8 创建项目 下面是 crtsi0.sm8 反汇编之后的代码 0x8084 < stext+1> 0x0FFF CLR (0xff,SP) CLR (0xff,SP) 0x8086 < stext+3> 0x94 LDW SP,X LDW SP,X 0x8087 < stext+4> 0x90CE8080 LDW Y,0x8080 LDW Y, idesc 0x808b < stext+8> 0xAE8082 LDW X,#0x8082 LDW X,#0x8082 0x808e < stext+11> 0xF6 LD A,(X) LD A,(X) 0x808f < stext+12> 0x2720 JREQ 0x80b1 JREQ 0x80b1 0x8091 < stext+14> 0xA560 BCP A,#0x60 BCP A,#0x60 0x8093 < stext+16> 0x2717 JREQ 0x80ac JREQ 0x80ac 0x8095 < stext+18> 0xBF03 LDW 0x03,X LDW c_x,x 0x8097 < stext+20> 0xEE03 LDW X,(0x03,X) LDW X,(0x03,X) 0x8099 < stext+22> 0xBF06 LDW 0x06,X LDW c_y,x 0x809b < stext+24> 0xBE03 LDW X,0x03 LDW X,c_x 0x809d < stext+26> 0xEE01 LDW X,(0x01,X) LDW X,(0x01,X) 0x809f < stext+28> 0x90F6 LD A,(Y) LD A,(Y) 0x80a1 < stext+30> 0xF7 LD (X),A LD (X),A 0x80a2 < stext+31> 0x5C INCW X INCW X 0x80a3 < stext+32> 0x905C INCW Y INCW Y 0x80a5 < stext+34> 0x90B306 CPW Y,0x06 CPW Y,c_y 0x80a8 < stext+37> 0x26F5 JRNE 0x809f JRNE 0x809f 0x80aa < stext+39> 0xBE03 LDW X,0x03 LDW X,c_x 0x80ac < stext+41> 0x1C0005 ADDW X,#0x0005 ADDW X,#0x0005 0x80af < stext+44> 0x20DD JRT 0x808e JRT 0x808e 0x80b1 < stext+46> 0xAE0000 LDW X,#0x0000 LDW X,#0x0000 0x80b4 < stext+49> 0x2002 JRT 0x80b8 JRT 0x80b8 0x80b6 < stext+51> 0xF7 LD (X),A LD (X),A 0x80b7 < stext+52> 0x5C INCW X INCW X 0x80b8 < stext+53> 0xA30009 CPW X,#0x0009 CPW X,#0x0009 0x80bb < stext+56> 0x26F9 JRNE 0x80b6 JRNE 0x80b6 0x80bd < stext+58> 0xAE0100 LDW X,#0x0100 LDW X,#0x0100 0x80c0 < stext+61> 0x2002 JRT 0x80c4 JRT 0x80c4 0x80c2 < stext+63> 0xF7 LD (X),A LD (X),A 0x80c3 < stext+64> 0x5C INCW X INCW X 0x80c4 < stext+65> 0xA30100 CPW X,#0x0100 CPW X,#0x0100 0x80c7 < stext+68> 0x26F9 JRNE 0x80c2 JRNE 0x80c2 0x80c9 < stext+70> 0xCD80CF CALL 0x80cf CALL main 0x80cc <_exit> 0x20FE JRT 0x80cc JRT _exit 若不想让 COSMIC C 编译器来进行初始化 如何来设置呢 也就是说 在单片机复位 后 直接跳转至 main 处执行 在 main 开始处 按照自己的设计 做一些变量和外设等的 初始化动作 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 49 / 88

50 3 STM8 创建项目 在 STVD 开发环境中 启动文件的设置如图所示 project->setttings... STM8 复位后直接跳转至 main 处执行,可按如下步骤修改 从 Start-up file 处的下来菜单中 选择 None 修改复位函数 - 将原来的{0x82, (interrupt_handler_t)_stext}, /* reset */ - 修改为 {0x82, (interrupt_handler_t)main}, /* reset */ 修改外部函数声明 - 将原来的 extern void _stext(); /* startup routine */ - 修改为 extern void main(); /* startup routine */ 注意 确保在变量使用前 都做了正确的初始化 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 50 / 88

51 3 STM8 创建项目 COSMIC C 语言中嵌入汇编指令 COSMIC C 编译器提供两种方法嵌入汇编指令 第一种方法是#asm 和#endasm 嵌入汇编指令块 第二种方法是嵌入行汇编 单独一行汇编指令 第一种方法语法 #asm //开始汇编指令块 ; #endasm //结束汇编指令块 第二种方法语法 _asm( 嵌入的汇编代码, 符合 C 语言规则的参数...); 例如 执行单条指令 _asm("ld _mya,a"); 若在一行内执行多条指令 _asm("push a\n ld a,88\n ld _mya,a\n inc a\n pop a\n call _subroutine\n"); 下面是一个嵌入汇编的例子 #include "stm8s207c_s.h" unsigned char i,mya; void subroutine(void){} main() { mya=0x22; #asm //#asm 要顶格书写 push a ld a,_mya inc a ld _mya,a call _subroutine pop a #endasm _asm("push a\n ld a,88\n ld _mya,a\n pop a\n call _subroutine\n"); while (1) {i = mya;} } STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 51 / 88

52 3 STM8 创建项目 COSMIC C 语言位变量 COSMIC C 编译器使用_Bool 类型定义位变量 布尔变量可用做结构或联合类型 连续 的布尔变量放在一个字节中 布尔变量定义 例子如下 _Bool _Bool char in_range; p_valid; *ptr; in_range = (value >= 10) && (value <= 20); p_valid = ptr; ptr not 0 */ if (p_valid && in_range) *ptr = value; /* p_valid is true if COSMIC C 语言常量定义 常量定义例子 char * const x; /* const pointer to char */ int * volatile y; /* volatile pointer to int */ const float pi = / 113.0; /* pi is never changed */ 定义一个常量表 const unsigned char constring[] ={0x2C,0x27,0x23,0x1F,0x1D,0x1A,0x17,0x16,0x13,0x11,0x0F,0x0E,0x00, 0x0D, 0x09, 0x15 }; unsigned char i; i = constring[3]; STM8 系列单片机入门 // i = 0x1F 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 52 / 88

53 3 STM8 创建项目 COSMIC C 语言在 RAM 中运行程序 可使用 COSMIC 中的函数_fctcpy 将 FLASH 中的代码代码拷贝 RAM 中 并运行 _fctcpy 从 FALSH 中拷贝一段可移动代码段到 RAM 中 _fctcpy 寻找 linker 定义的描述符 此 描 述 符 是 在 RAM 中 定 义 段 的 第 一 个 字 符 本 例 子 在 RAM 中 定 义 了 一 个 段.CODE_IN_RAM 所以地一个字符是 C 需要在程序中应用 int _fctcpy char name ; 在 Ram 中创建一个.CODE_IN_RAM 段 并在 Option 中输入 -ic.code_in_ram 表示在 RAM 中定义一个 CODE_IN_RAM 的段 程序可从此起始 地址运行 _fctcpy 函数使用此段的名字的第一个描述符 C -ic 表示标记这个段为可移动的段 可将 FLASH 中的代码移动到此 在程序代码中完成函数 #pragma section (CODE_IN_RAM) functions(){ var1 = 0x99; var2 = 0x88; var3 = 0x77; } routine(){ var1++; var2++; var3++; } #pragma section () 打开 project->settings ->Linker 如下图所示配置 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 53 / 88

54 3 STM8 创建项目 例程如下 unsigned char var1,var2,var3; int _fctcpy(char name); #pragma section (CODE_IN_RAM) functions() { var1 = 0x99; var2 = 0x88; var3 = 0x77; } routine() { var1++; var2++; var3++; } #pragma section () main() { _fctcpy('c'); RAM functions(); routine(); //拷贝 pragma section(code_in_ram)中的函数到 // 调用 RAM 中的 functions 函数 // 调用 RAM 中的 routine 函数 while (1) { _asm("nop"); _asm("nop"); _asm("nop"); _asm("nop"); } } COSMIC C 语言产生 HEX 文件 设置 Project-> Settings ->Post-Build 原来设置 chex -o $(OutputPath)$(TargetSName).s19 $(OutputPath)$(TargetSName).sm8 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 54 / 88

55 3 STM8 创建项目 设置为 chex fi o $(OutputPath)$(TargetSName).hex $(OutputPath)$(TargetSName).sm8 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 55 / 88

56 3 STM8 创建项目 3.3 使用 IAR 创建 C 语言项目 新建 a) 创建一个 Workspace 首先 创建一个 workspace 选择菜单 File>New>Workspace b) 创建一个 Project 1) 创建一个新的工程 选择 Project>Create New Project 创建新工程的对话框 如下图 所示 2) 3) 4) Tool chain 默认是 STM8 Series 无需再选择 在 Project templates 中选择 Empty project 弹出 Save As 对话框 选择 project 保存的路径 并输入 project 的名字 在 Workspace 窗口中 显示如下 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 56 / 88

57 3 STM8 创建项目 有 Debug 和 Release 两个配置 默认配置是 Debug 5) 在添加文件到工程中之前 先保存 workspace 选择 File>Save Workspace, 指定要保存 的路径 并输入 workspace 的名字 一个 workspace 文件的扩展名是 eww. 此文件列出了添加到 workspace 中的所有的 project 相关当前会话信息 比如 windows 的保存路径和断点保存于 projects\setttings 目 录下 c) 添加文件到工程 可选择 Project>Add Files 选择要添加的 C 文件 找到相应 MCU 型号的头文件 拷贝 到当前的工程目录中 默认地 头文件在 IAR 安装目录 inc 下 C:\Program Files\IAR Systems\Embedded Workbench 6.0 Kickstart\stm8\inc 本例中使用了 iostm8s105s6.h 编写一个简单的 C 程序 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 57 / 88

58 3 STM8 创建项目 源文件 main.c /* Includes */ #include "iostm8s105s6.h" /* Global variables */ unsigned int ms_count; void CLK_Configuration(void) { CLK_CKDIVR = 0x00; /* fcpu=fmaster = 16MHz */ } void GPIO_Init(void) { PD_DDR = 0x0D; /* Output. */ PD_CR1 = 0x0D; /* PushPull. */ PD_CR2 /* Output speed up to 2MHz. */ = 0x00; } void TIM2_Init(void) { TIM2_PSCR = 0x00; /* Configure TIM2 prescaler =16. */ TIM2_ARRH = 0xC1; /* Configure TIM2 period. */ TIM2_ARRL = 0x7F; /* Configure TIM2 period. */ TIM2_CNTRH = 0xC1; TIM2_CNTRL = 0x7F; TIM2_CR1 = 0x81; /* Enable TIM2. */ TIM2_IER = 0x01; /* Enable TIM2 OVR interrupt. */ } main() { asm("sim"); /* disable interrupts */ ms_count = 0; CLK_Configuration(); GPIO_Init(); TIM2_Init(); asm("rim") ; /* enable interrupts */ while (1) { asm("nop"); asm("nop"); asm("nop"); } } STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 58 / 88

59 3 STM8 创建项目 中断 声明一个中断向量 说明如下 #pragma vector=0x02 interrupt void interrupt_handler(void) 说明: #pragma vector 是 IAR 中断向量指令 =0x02 : 其数字代表中断向量编号 STM8 的地址是从 0x00800 开始 IAR 的中断编号从 0 开始 中断向量号依次按照中断地址递增 如 复位向量是 0x 中断向量号是 0x00 TRAP 的中断地址是 0x 中断向量号是 0x01 SPI 中断号是 0x0C;详细见下表 interrupt void interrupt_handler(void): 是声明一个中断函数 注意 interrupt 是两个下划线 interrupt_handler 是中断函数名字 可自己定义 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 59 / 88

60 3 STM8 创建项目 一个简单的中断函数 stm8s105_interrupt.c /* Includes */ #include "iostm8s105s6.h" /* External variables */ extern unsigned int ms_count; /* Defines an interrupt handler for TIM2_UPDATE vector. */ #pragma vector=15 interrupt void TIM2_UPDATE_IRQHandler(void) { TIM2_SR1 &=~(0x01); ms_count++; if(ms_count == 500) { PD_ODR ^= 0x01; ms_count = 0; } /* 0.5 秒中斷 */ } d) 工程选项配置 选择 Project>Options 或者在 Workspace 窗口 选中 project 名字 右击选择选择 Options 1) 在 Category 中 选择 General Options,如图 在 Target 的 Device 中 选择相 应的 MCU 型号 其他选择默认 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 60 / 88

61 3 STM8 创建项目 2) 在 Category 中 选择 C/C++Compiler 显示 compiler 选项页 选择 Output list file, 输出列表文件 3) 在 Category 中 选择 Assembler 显示 Assembler 选项页 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 61 / 88

62 3 STM8 创建项目 4) 在 Category 中 选择 Output Converter 显示 Output Converter 选项页 在 Debug\Exe 目录中 产生目标文件 IAR 默认的是.out 文件 此界面可选择不同的格 式目标文件 本例选择 Intel extended 格式的目标文件 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 62 / 88

63 3 STM8 创建项目 5) 在 Category 中 选择 Linker 显示 Linker 选项页 默认输出文件是 工程名字.out 选中 Generate linker map file,输出工程的 map 文件 6) 在 Category 中 选择 Debugger 显示 Debugger 选项页 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 63 / 88

64 3 STM8 创建项目 在 Driver 中 选择 ST-LINK IAR 目前还支持软件仿真模拟和 STice 工具 编译 通过 Project>Compile 或者 Project>Rebuild All 来编译某个源文件或者全部重新编译 编译创建信息显示窗口如下 IDE 将创建 List, Obj 和 Exe 目录 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 64 / 88

65 3 STM8 创建项目 List 目录是列表文件的目录 其扩展名为.lst Objm 目录是目标文件目录 ILINK 连接器的扩展名为.o Exe 目录是可执行文件目录 可通过 workspace 中的 output 文件夹 来查看所有输出的文件 查看列表文件 List 文件可查看汇编代码和每个段的二进制代码 还显示变量如何分配 List 文件的结 尾现实了堆栈 代码和数据存储器的大小 可选择 Tools>Options 来配置更新改变的文件 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 65 / 88

66 3 STM8 创建项目 若要看代码的大小 可找到工程目录下的 \Debug\List 在 list 下有.map 文件 用记事 本打开.map 文件 在.map 的末尾 可查看程序代码大小 如本例中的.map 文件 [1] = D:\Tutorial\EWSTM8S\Debug\Obj [2] = command line [3] = dbgstm8smd.a [4] = dlstm8smn.a 294 bytes of readonly code memory 132 bytes of readonly data memory 274 bytes of readwrite data memory Errors: none Warnings: none 本例的程序代码是 294 个字节 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 66 / 88

67 3 STM8 创建项目 调试 选择 Project>Download and Debug. 进入调试状态 或者选择工具栏 使用 Auto 窗口 在调试状态下 选择 View>Auto 打开 Auto 窗口 Auto 窗口自动地显示当前的修改变量 如 图 观察窗口 选择 View>Watch 打开观察窗口 如图 寄存器窗口 选择 View>Register 打开寄存器窗口 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 67 / 88

68 3 STM8 创建项目 烧录 IAR 在调试时 可直接把代码下载到 STM8 里 也可以通过 STVP 来烧录 在 IAR 工程当前目录下 有 Debug\Exe Exe 下面有 个.hex 文件 这个就是目标文件 在 STVP 中调入 HEX 文件 配置好 OPTION BYTE 进行程 序的烧录 运行 STVP 如图所示 选择编程器 Configure>Configure ST Visual Programmer STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 68 / 88

69 3 STM8 创建项目 打开 HEX 文件 File>Open 配置 OPTION BYTE STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 69 / 88

70 3 STM8 创建项目 选 择 Program>All tabs(on action sectors if any) 此 选 项 可 将 PROGRAMM MEMORY,DATA MEMORY 和 OPTION BYTE 一起烧录到 STM8 里面去 IAR C 语言相关说明 嵌入汇编语言 asm( nop ); STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 70 / 88

71 4 STM8 程序设计 4 STM8 程序设计 本章提示 在开始写代码之前 需要准备两份资料 一份是 datasheet 有引脚图及引脚功能说明 OPTION BYTE 说明 另一份是参考手册 详细描述了各个外设的功能 本章介绍了 STM8 的时钟配置 GPIO ADC TIMER2 EEPROM 等的应用 4.1 STM8S 应用例程 时钟控制 STM8 的钟控制器功能强大而且灵活易 现以 STM8S 单片机的时钟树为例 时钟树如 下图所示 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 71 / 88

72 4 STM8 程序设计 从 时 钟 树 来 看 fcpu 的 时 钟 来 源 是 由 CPUDIV 分 频 fmaster 时 钟 而 获 得 的 fmaster 的时钟源有三个可以选择 fhse fhsidiv flsi fhse 来自于外部的时钟 fhsidiv 来自于内部 16MHz RC 的时钟源 flsi 来自于内部 128KHz RC 时钟源 在开始设计前 先确定时钟为外部或内部 主频要跑多少频率的 建议使用内部 16MHz 的 RC 振荡器作为主时钟源 STM8 时钟控制部分可以在程序的任何时候 都可以切换 灵活地控制 CPU 的功耗与运 行 配置时钟控制 fcpu=fmaster = 16MHz 的例子 /* fcpu=fmaster = 16MHz */ CLK_CKDIVR = 0x00; // HSIDIV[1:0]=0x00, CPUDIV[2:0]=0x00 配置时钟控制 fcpu=fmaster = 2MHz 的例子 /* fcpu=fmaster = 2MHz */ CLK_CKDIVR = 0x18; // HSIDIV[1:0]=0x11, CPUDIV[2:0]=0x00 // HSIDIV[1:0]= 11 fhsi = fhsi RC 输出/8 // CPUDIV[2:0]= 000 fcpu = fmaster GPIO 复用功能的映射是通过选项字节控制的 但是在同一时刻仅有一个复用功能可以映射到 引脚上 每个端口都分配有一个输出数据寄存器 一个输入引脚寄存器 一个数据方向寄存器 一个选择寄存器 和一个配置寄存器 一个 I/O 口工作在输入还是输出是取决于该口的数据 方向寄存器的状态 GPIO 配置表如下所示 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 72 / 88

73 4 STM8 程序设计 例子 /* PD0 控制一个 LED 灯的亮/灭 */ PD_DDR = 0x01; /* PD0 设置为输出 */ PD_CR1 = 0x01; /* 推挽输出 */ PD_CR2 = 0x00; /* 在输出模式 DDR=1 时 速度 2MHz */ PD_ODR ^= 0x01; PD_ODR ^= 0x01; /* LED 亮 */ /* LED 灭 */ ADC ADC1 框图 如下图所示 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 73 / 88

74 4 STM8 程序设计 本文以 STM8S105S4T6C 的 PB3/AIN3 为模拟输入通道 单次转换模式为例 在单次转换模式中 ADC 操作步骤 - ADC_CR1 的 CONT=1 将 ADC 设置为单次转换模式 - 通过 ADC_CSR 寄存器的 CH[3:0]选定通道 设置 ADC_CR1 寄存器的 ADON=1 来启动 ADC 一旦转换完成 转换后的数据存储在ADC_DR寄存器中 EOC(转换结束)标志被置位 如 果EOCIE 被置位将产生一个中断 例子 unsigned int AD_Value; PB_DDR &=~0x04; PB_CR1 &=~0x04; PB_CR1 &=~0x04; ADC_CR1 ADC_CR2 = 0x00; = 0x00; STM8 系列单片机入门 /* 设置 PB3 为输入 */ /* 悬空输入 */ /* 中断禁止 */ /* 预分频 fadc = fmaster/2 单次转换模式 */ /* 数据左对齐 */ 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 74 / 88

75 4 STM8 程序设计 ADC_CSR = 0x03; /* 选择 AIN3 作为输入通道 */ ADC_CR1 = 0x01; /* 启动 ADC */ /* 如果是第一次启动 ADC 则需要等待时间>7us 确保 ADC 电源稳定*/ ADC_CR1 = 0x01; /* ADON=1,启动 ADC */ while(!(adc_csr & 0x80));/* 等待转换完成(EOC=1) */ /* 读取 ADC 的结果到 AD_Value 变量 */ AD_Value = ((((unsigned int)adc_drh)<<2)+adc_drl); TIMER2 TIM 时基单元 如下图所示 计数器使用内部时钟(fMASTER) 由CK_PSC提供 并经过预分频器分频产生 计数器时钟CK_CNT 计数器时钟频率的计算公式 fck_cnt = fck_psc/2(pscr[3:0]) 本例中 PSC=0 fck_cnt=16mhz 每次计数时间为 ms 记时 1ms 需 要 计数初值为 =49535=0xC17F 例子 /* TIM2 时基配置 */ unsigned int ms_count; /* 定义一个 ms_count 计数变量*/ void TIM2_Init(void) STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 75 / 88

76 4 STM8 程序设计 { TIM2_PSCR = 0x00; TIM2_ARRH = 0xC1; TIM2_ARRL = 0x7F; TIM2_CNTRH = 0xC1; TIM2_CNTRL = 0x7F; TIM2_CR1 = 0x81; TIM2_IER = 0x01; /* 配置 TIM2 预分频 =16 */ /* 配置 TIM2 周期 1ms 中断 */ /* 使能 TIM2. */ /* 使能 TIM2 溢出中断 */ } /* TIM2 溢出中断 */ TIM2_SR1 &=~(0x01); ms_count++; if(ms_count == 500) { PD_ODR ^= 0x01; ms_count = 0; } /* 清中断标志 */ /* 0.5 秒中断 */ /* PD0 翻转 */ EEPROM 下面是中容量STM8S的FLASH存储器和数据EEPROM组织机构 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 76 / 88

77 4 STM8 程序设计 EEPROM 编程模式 字节编程和自动快速字节编程(没有擦除操作) 字编程 块编程和快速块编程(没有擦除操作) EEPROM 字节编程 EEPROM 在字节编程模式中 可对 EEPROM 的数据区域进行逐字地编程 应用程序 直接向目标地址写入数据 EEPROM 字节操作步骤 设定编程时间 FIX=1 为标准编程时间 一般一次编程时间为 6ms 如果 EEPROM 被擦除过并且 FIX=0 那么变成时间为标准编程时间的一般 一般为 3ms 向 FLASH_DUKR 寄存器连续写入两个 MASS 密钥值来解除 DATA 区域的写保护 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 77 / 88

78 4 STM8 程序设计 3. 第一个硬件密钥 0b (0xAE) 第二个硬件密钥 0b (0x56) 编 程 成 功 后 EOP 位 置 1 如 果 FLASH_CR1 中 的 IE 位 预 先 使 能 只 要 标 志 位 EOP/WP_PG_DIS 中一位置 1 就会产生一个中断 volatile unsigned char /* 定义固定地址变量 */ unsigned char eeprom_value; /* 定义一个显示 EEPROM 值的变量 */ unsigned int eeprom_address; /* 定义 eeprom_address 变量 */ //定义 EEPROM 字节写 函数 void EEPROM_WRITE_BYTE(unsigned eedata) { eeprom_address = eeaddress; int eeaddress, unsigned char /* 设置编程时间 FIX =1 编程时间固定为标准编程时间 tprog */ FLASH_CR1 &= (unsigned char)(~0x01); FLASH_CR1 = 0x01; /* MASS 密钥 解除 EEPROM 的保护 */ FLASH_DUKR = 0xAE; FLASH_DUKR = 0x56; *((unsigned char*) eeprom_address) = eedata; //EOP=1 EEPROM 编程结束 while((flash_iapsr & 0x04)!= 0x00); } main{ EEPROM_WRITE_BYTE(0x4000,0x77); EEPROM_WRITE_BYTE(0x4001,0x88); EEPROM_WRITE_BYTE(0x4002,0x99); eeprom_address = 0x4000; eeprom_value = *((unsigned char*) eeprom_address); while(1) {_asm("nop");} } STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 78 / 88

79 4 STM8 程序设计 EEPROM 字编程 EEPROM 允许字编程 一次编程 4 个字节 从而缩短 EEPROM 的编程时间 EEPROM 字编程步骤 设置字编程模式 通过设置 FLASH_CR2 和 FLASH_NCR2 中的 WPRG/NWPRG 置位/清零来设置字编 程模式 向 FLASH_DUKR 寄存器连续写入两个 MASS 密钥值来解除 DATA 区域的写保护 第一个硬件密钥 0b (0x56) 第二个硬件密钥 0b (0xAE) 编程成功后 EOP 位置 1 void EEPROM_WRITE_WORD(unsigned int eeaddress, eedata) { /* 设置编程时间 */ FLASH_CR1 &= (unsigned char)(~0x01); FLASH_CR1 = 0x01; unsigned char /* MASS 密钥 解除 EEPROM 的保护 */ FLASH_DUKR = 0xAE; FLASH_DUKR = 0x56; /* 设置字编程模式 */ FLASH_CR2 = 0x40; FLASH_NCR2 &= (unsigned char)(~0x40); /* 从低地址开始写入 4 个字节数据 */ *((unsigned char *)eeaddress) = (eedata); *(((unsigned char *)eeaddress) + 1) = (eedata+1); *(((unsigned char *)eeaddress) + 2) = (eedata+2); *(((unsigned char *)eeaddress) + 3) = (eedata+3); while((flash_iapsr & 0x04)!= 0x00); //EOP=1 EEPROM 编程结束 } main{ EEPROM_WRITE_WORD(0x4000,0x11); while(1) {_asm("nop");} } STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 79 / 88

80 4 STM8 程序设计 EEPROM 块编程 EEPROM块编程操作允许一次对整个块(128个字节)进行编程 整个块在编程前被自 动擦除 但块编程操作一定要在RAM中运行 EEPROM块操作步骤 1. 设置块操作编程时间 2. 向 FLASH_DUKR 寄存器连续写入两个 MASS 密钥值来解除 DATA 区域的写保护 第一个硬件密钥 0b (0xAE) 第二个硬件密钥 0b (0x56) 3. 设置块编程模式 通过设置 FLASH_CR2 和 FLASH_NCR2 中的 PRG/NPRG 位预先置位/清零来使能标 准块编程 4. 块编程 向EEPROM的目标地址依次写入要编程的数据 这样数据会被锁存在内部缓存中 为 编程整个块 每个块中的所有字节都需要被写入数据 所有被写入缓存的数据必须位于 同一个块中 当目标块的最后一个字节被装载到缓存后 编程就自动开始了 5. 编程成功后 可通过 HVOFF 和 EOP 位来判断是否完成编程操作 STM8 的块大小是 不同的 如下表 STM8 系列单片机 低密度 中密度 高密度 块大小 64 个字节 128 个字节 128 个字节 本例程以中高密度的STM8为例 写第一块(128字节/块) /* 在 RAM 中定义一个数组 用于存放 EEPROM 的写操作代码 */ unsigned char eeprom_write_block_in_ram[100]; void EEPROM_WRITE_BLOCK(void) { unsigned char count; unsigned int eeaddress_start; STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 80 / 88

81 4 STM8 程序设计 eeaddress_start = 0x4000; /* 设置编程时间 */ FLASH_CR1 &= (unsigned char)(~0x01); FLASH_CR1 = 0x01; /* MASS 密钥 解除 EEPROM 的保护 */ FLASH_DUKR = 0xAE; FLASH_DUKR = 0x56; /* 设置块编程模式 */ FLASH_CR2 = 0x01; FLASH_NCR2 &= (unsigned char)(~0x01); for (count = 0; count < 128; count++) { /* 本例子中在第一个 128 块中 写入 0x99 数据. 可根据需要写入需要的数据 */ *((unsigned char *)(eeaddress_start + count)) = 0x99; } //判断 EEPROM 块操作是否完成 /* STM8S103,STM8S903 属于低容量 其 BLOCK 的大小为 64 字节 */ //while((flash_iapsr & 0x04)!= 0x00); //EOP=1 EEPROM 编程结束 /* STM8S208,STM8S207,STM8S105 是中大容量,其 BLCOK 大小为 128 个字节*/ while ((FLASH_IAPSR & 0x40)!= 0x00 ); //HVOFF=1 高压结束 } // /* 将块写函数 EEPROM_WRITE_BLOCK 拷贝到 RAM 中*/ void COPY_EEPROMWRITEBLOCK_INTO_RAM(void) { unsigned char eerom_count; eerom_count=0; while ( *((unsigned char*)eeprom_write_block + eerom_count)!= 0x81 ) { eeprom_write_block_in_ram[eerom_count] = *((unsigned char*)eeprom_write_block + eerom_count); STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 81 / 88

82 4 STM8 程序设计 eerom_count++; } eeprom_write_block_in_ram[eerom_count] = 0x81;//RET 指令 0x81 } main() { /* 调用将 EEPROM 写操作代码拷贝到 RAM 中 */ COPY_EEPROMWRITEBLOCK_INTO_RAM(); /*调用 RAM 中的 EEPROM 写操作函数*/ //_asm("call _eeprom_write_block_in_ram"); //使用 COSMIC C 编译器 asm("call eeprom_write_block_in_ram"); //使用 IAR 编译器 _asm("nop"); while (1) { _asm("nop"); _asm("nop"); _asm("nop"); } } 注意 - 对 EEPROM 的块操作 一次写入 128 字节 其块写操作代码必须在 RAM 中运行 需要将 EEPROM 块写操作代码 拷贝到 RAM 中运行 在调用 RAM 调用块写操作代码 完成块写操作 但要注意 IAR 和 COSMIC 运行 RAM 中的代码的方式不同 在 COSMIC C 编译器中 STVD+COSMIC 调用语句如下 _asm("call _eeprom_write_block_in_ram"); 在 IAR C 编译器中 调用语句如下 _asm("call eeprom_write_block_in_ram"); STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 82 / 88

83 5 STM8 开发工具 5 STM8 开发工具 目前 ST 有两款开发工具可以支持 STM8 的开发 工具有 STX-RLINK 和 ST-LINK 其中 ST-LINK 是 ST 的开发工具 其也支持 STM32 和 STM8 两个产品系列 5.1 STX-RLINK STX-RLINK 是 Raisonance 公司提供的第三方开发工具 STX-RLINK 是一个低成本的 调试器/编程器 可以支持 STM32, STR9,STR7,STM8,ST7 和 upsd STM8 使用 SWIM 接 口调试/编程 STM8: 4-pin SWIM STX-RLINK 连接说明 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 83 / 88

84 5 STM8 开发工具 SWIM 连接器 信号 VCC SWIMDATA 4PINs PINs ,3,5,10 4 GND RST 24PINs 6, 12, 15 (All three pins must be connected.) 3,4,10,17,19,21,22 9 注意 - 如果在目标板上没有上拉电阻 SWIMDATA 上需要增加一个 2K2 的上拉电阻 - 需要在目标板上外加 5V 电源 5.2 ST-LINK ST-LINK 是在线调试器和编程器 可用于 STM8 系列和 STM32 系列的设计开发生产 可满足用户大部分的应用开发和生产 ST-LINK 提供的接口 接口方式 SWIM 描述 用于开发 STM8 系列产品 ST-LINK 目前支持的开发环境 开发环境 ST Visual Develop (STVD) IAR EWSTM8 COSMIC 描述 用于开发 STM8 系列产品 用于开发 STM8 系列产品 用于开发 STM8 系列产品 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 84 / 88

85 5 STM8 开发工具 ST-LINK 与 STM8 系列对应的引脚连接 ST-LINK 引线 TVCC 线 SWIM 线 GND 线 SWIM-RST STM8 的引脚 MCU VCC 电源引脚 MCU SWIM 引脚 MCU 的 GND 电源地 MCU 复位引脚 ST-LINK 与 STM8 目标板连接如下图所示 注意 在调试或编程时 要给目标板提供外部的电源 5.3 ST-LINK/V2 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 85 / 88

86 5 STM8 开发工具 ST-LINK/V2 是一款用于开发 STM8/STM32 的在线调试器/编程器 提供 SWIM 和 JTAG 接口 可调试开发 STM8 和 STM32 全系列的产品 ST-LINK/V2 可支持如下软件 STM8: ST Visual Develop(STVD) 或 ST Visual Program(STVP)软件 STM32: Attolic, IAR, Keil 和 TASKING SWIM 连接器接口定义 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 86 / 88

87 6 STM8 EMC 设计注意事项 6 STM8 EMC 设计注意事项 Current C+/- 10uF C+/- 10uF VDDA C+/- 10uF C104 + (3-5.5V) VSSA C+/10uF Un U1 VREF+ (2.75-VDDA) VREF- (VSS-0.5V) VCAP C630nF-1uF A/D converter C104 C104 C104 - VDD C+/- 10uF 3-5.5V 1.8V Main Voltage Regulator C104 Low Power Voltage Reg. VDDIO 3-5.5V MCU core CPU RAM FLASH I/O buffers C+/- 10uF C104 VDD NRST C104 Current STM8 1) VCAP 电容 STM8S 的 VCAP 电容是一个很特别的电容 它是 STM8S 的内核的工作电压 需要在外 部加一个外部的电容 以保证内核工作电压的稳定 一般推荐 1uF 的瓷片电容 1uF 的 瓷片电容在进行 PCB 布线时 必须要尽可能地靠近 VCAP 引脚 一直靠近到不能再靠 近为止 这一点非常非常重要 STM8L 系列上没有此电容 2) 电源 - VDD 和 VSS 电源引脚上 建议加上退耦电容(10uF 点解电容和 0.1uF 瓷片电容) - 在用电源对 VDDIO_x 和 VSSIO_x 的引脚上 建议加上退耦电容(10uF 点解电容和 0.1uF 瓷片电容) 或者至少加上一个 0.1uF 瓷片电容 - 若在电路中 有用到外部的设备 如 FLASH, 24C02 等 建议在其电源上加上退耦 电容(10uF 点解电容和 0.1uF 瓷片电容) 或者至少加上一个 1uF 瓷片电容 最好不要使 其与 MCU 共地 3) 地线 在开始 PCB 布线前 需要全局考虑 GND 的走向 在设计中注意电流回路 特别是 MCU 电流回路要与其他大电流的回路分开 过孔在线路中有阻抗 容易造成的 GND 电 势不同 尽可能 GND 布在 PCB 的一面上 不建议 GND 走过孔 不建议在 GND 线上加 跳线连接 4) 复位 - 对于 STM8 的应用 NRST 复位脚 因内部有一个弱上拉电阻 在应用时可复位电路可 只用一个外部的瓷片电容就(一般在 100nF-0.1uF)就可以 也可按照通常的方式加一个 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 87 / 88

88 6 STM8 EMC 设计注意事项 上拉电阻 4.7K-10K 5) SWIM 调试接口 建议在 SWIM 引脚上 接一个上拉电阻 以保持其数据可靠稳定 4.7K-10K 6) STM8 时钟 建议采用内部的 RC 时钟作为主时钟 针对一些 STM8S 产品 使用外部时钟, MCU 的 抗干扰性能稍弱 又对时钟精度有特别的要求 可用外部的时钟作为一个参考时钟去校 验内部的 RC 时钟 仍使用内部 RC 作为主时钟 可避免使用外部时钟抗干扰的问题 7) I2C 接口 STM8 是真正开路输出的接口 在作为一般 GPIO 时 需加上拉电阻 STM8 系列单片机入门 王志杰 ( QQ ; iewangzhijie@hotmail.com ) 88 / 88

STM8单片机入门

STM8单片机入门 STM8 单片机入门 2010-08-19 -2- 目 录 1 STM8 微控制器简介...3 1.1 STM8S 系列...3 1.2 STM8L 系列...5 1.3 STM8A 系列...7 1.4 STM8 微控制器网站...9 2 STM8 集成开发环境简介...11 2.1 ST TOOLSET...11 2.2 COSMIC...13 2.3 IAR...16...18 3.1 STVD

More information

STM8单片机入门

STM8单片机入门 ST( 意法半导体 ) 8 位微控制器系列 STM8 系列单片机入门 王志杰 2014-06-13 1 STM8 系列微控制器简介 目录 STM8 系列单片机入门... 1 1 STM8 系列微控制器简介... 4 1.1 STM8S 系列... 6 1.2 STM8L 系列... 8 1.3 STM8A 系列... 10 2 STM8 集成开发环境简介... 12 2.1 ST TOOLSET...

More information

目 录

目 录 1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12

More information

EK-STM32F

EK-STM32F STMEVKIT-STM32F10xx8 软 件 开 发 入 门 指 南 目 录 1 EWARM 安 装... 1 1.1 第 一 步 : 在 线 注 册... 1 1.2 第 二 步 : 下 载 软 件... 2 1.3 第 三 步 : 安 装 EWARM... 3 2 基 于 STMEVKIT-STM32F10xx8 的 示 例 代 码 运 行... 6 2.1 GPIO Demo... 6 2.2

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

ICD ICD ICD ICD ICD

ICD ICD ICD ICD ICD MPLAB ICD2 MPLAB ICD2 PIC MPLAB-IDE V6.0 ICD2 usb PC RS232 MPLAB IDE PC PC 2.0 5.5V LED EEDATA MPLAB ICD2 Microchip MPLAB-IDE v6.0 Windows 95/98 Windows NT Windows 2000 www.elc-mcu.com 1 ICD2...4 1.1 ICD2...4

More information

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0 SH79F6431 1. SH79F6431 1T 8051 FLASH SH79F JET51 Keil µ vision JTAG 1.1. SH79F6431 LQFP64 1.2. (Target Board) SH79F6431 1 V 1.0 1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F6431 1 2 1 B. 1(VCC/GND)

More information

目录

目录 ALTERA_CPLD... 3 11SY_03091... 3 12SY_03091...4....5 21 5 22...8 23..10 24..12 25..13..17 3 1EPM7128SLC.......17 3 2EPM7032SLC.......18 33HT46R47......19..20 41..20 42. 43..26..27 5151DEMO I/O...27 52A/D89C51...28

More information

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor 1 4.1.1.1 (Load) 14 1.1 1 4.1.1.2 (Save) 14 1.1.1 1 4.1.2 (Buffer) 16 1.1.2 1 4.1.3 (Device) 16 1.1.3 1 4.1.3.1 (Select Device) 16 2 4.1.3.2 (Device Info) 16 2.1 2 4.1.3.3 (Adapter) 17 2.1.1 CD-ROM 2 4.1.4

More information

untitled

untitled http://www.embedded-soc.com/ J-LINK J-Link Rev2.1 http://www.embedded-soc.com/ 2007-11-11 http://www.embedded-soc.com/ J-LINK J-Link ARM JTAG J-LINK J-LINKJLINK J-FLASH ARM F.A.Q jlink GDBserver J-Flash

More information

Application Note Format

Application Note Format USB 說 2 - AD PWM Office: 6F, No. 12, Innovation 1st. RD., Science-Based Industrial Park, Hsin-Chu City, Taiwan, R.O.C Tel: +886-3-6661766 ext.1672 Fax: +886-3-6661765 Etoms Electronics Corp. Publication

More information

ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplica

ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplica CP Chip Power ARM Cortex-M3 (STM32F) ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplication and hardware

More information

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha CYPOK CYPOK 1 UltraEdit Project-->Install Language Tool: Language Suite----->hi-tech picc Tool Name ---->PICC Compiler Executable ---->c:hi-picinpicc.exe ( Command-line Project-->New Project-->File Name--->myc

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe   Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L 1 SH88F516 8051 64K FLASH 1024 EEPROM SH88F516 JET51 S-Lab Keil µ vision ISP51 Keil µ vision ISP51 ISP51 PC RS232 MCU SH88F516 SH88F516 1.1 SH88F516 1.1 SH88F516 SH88Fxx: QFP44, DIP40 RAM Flash E2 ADC

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD2 1...2 1.1...2 1.2...2 1.3 /...2 2 SoftICE...2 3 SoftICE MCU...2 4 SoftICE...3 4.1 SST BootLoader SOFTICE...3 4.2 SoftICE SST MCU...6 5 SoftICE...7

More information

USB解决方案.ppt

USB解决方案.ppt USB USB? RS232 USB USB HID U modem ADSL cable modem IrDA Silabs USB CP210x USB UART USB RS-232 USB MCU 15 USB 12 FLASH MCU 3 USB MCU USB MCU C8051F32x 10 ADC 1.5%, Vref CPU 25MIPS 8051 16KB Flash -AMUX

More information

ARM JTAG实时仿真器安装使用指南

ARM JTAG实时仿真器安装使用指南 ARM JTAG Version 1.31 2003. 11. 12 ARM JTAG ARM JTAG.3 ARM 2.1.4 2.2.4 ARM JTAG 3.1 18 3.2 18 3.2.1 Multi-ICE Server.18 3.2.2 ADS..21 ARM JTAG 4.1 Multi-ICE Server 33 4.1.1 Multi-ICE Server..... 33 4.1.2

More information

NEXT SDT2.51 C:\ARM251 SDT2.51 ARM SDT 2.51 ARM PROJECT MANAGER SDT 2

NEXT SDT2.51 C:\ARM251 SDT2.51 ARM SDT 2.51 ARM PROJECT MANAGER SDT 2 S3C44B0 SDT DRAGNBOY MICROSTAR ARM 51 ARM S3C44B0 ARM SDT2.51 IAR ADS SDT2.51 S3C44B0 LEDTEST SDT ARM 1 2 SDT embed.8800.org SDT2.51 SDT2.51 ARM ARM CPU ARM SDT ADS ADS MULTI-ICE SDT JTAG JTAG SDT SDT2.51

More information

学习MSP430单片机推荐参考书

学习MSP430单片机推荐参考书 MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP

More information

untitled

untitled niosii H:\DB2005\project\niosDK\Example\NiosSmall QuartusII4.2 File -> New Project Wizard Diectory,Name,Top-Level Entity Add Files EDA Tools Setting Finish, OK H:\DB2005\project\niosDK\Example\NiosSmall

More information

C语言的应用.PDF

C语言的应用.PDF AVR C 9 1 AVR C IAR C, *.HEX, C,,! C, > 9.1 AVR C MCU,, AVR?! IAR AVR / IAR 32 ALU 1KBytes - 8MBytes (SPM ) 16 MBytes C C *var1, *var2; *var1++ = *--var2; AVR C 9 2 LD R16,-X ST Z+,R16 Auto (local

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

AL-M200 Series

AL-M200 Series NPD4754-00 TC ( ) Windows 7 1. [Start ( )] [Control Panel ()] [Network and Internet ( )] 2. [Network and Sharing Center ( )] 3. [Change adapter settings ( )] 4. 3 Windows XP 1. [Start ( )] [Control Panel

More information

bingdian001.com

bingdian001.com TSM12M TSM12 STM8L152C6, STM8L152R8 MSP430F5325 whym1987@126.com! /******************************************************************************* * : TSM12.c * : * : 2013/10/21 * : TSM12, STM8L f(sysclk)

More information

言1.PDF

言1.PDF MSP430 WINDOWS WORKBENCH MSP430 Flash Green MCU Flash Flash MCU MSP430 16 RISC 27 125ns 1.8V~3.6V A/D 6 s MSP430 10 ESD MSP430 MSP430 10 MSP430 2001 MSP430 Windows Workbench Interface Guide Windows Workbench

More information

MICROCHIP EVM Board : APP APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pi

MICROCHIP EVM Board : APP APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pi MICROCHIP EVM Board : APP001 1-1. APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pin 16 I/O Extension Interface 1-2. APP001 Block_A Block_B

More information

STM8L IAP 应用程序中编程指导

STM8L  IAP 应用程序中编程指导 STM8L IAP 使用说明 前言 本篇主要介绍 STM8Lxxxx 如何实现在应用程序中编程 (In-application programming) 1. IAP user Flash 分配框图及中断向量表重定向 0x8000 0x8080 0x9000 中断向量表重定向 0x9080 图 1:IAP 代码在 User Flash 中的空间分配 注意 : 1 和 2 为 IAP 代码空间 为客户自己的

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

untitled

untitled MODBUS 1 MODBUS...1 1...4 1.1...4 1.2...4 1.3...4 1.4... 2...5 2.1...5 2.2...5 3...6 3.1 OPENSERIAL...6 3.2 CLOSESERIAL...8 3.3 RDMULTIBIT...8 3.4 RDMULTIWORD...9 3.5 WRTONEBIT...11 3.6 WRTONEWORD...12

More information

PTS7_Manual.PDF

PTS7_Manual.PDF User Manual Soliton Technologies CO., LTD www.soliton.com.tw - PCI V2.2. - PCI 32-bit / 33MHz * 2 - Zero Skew CLK Signal Generator. - (each Slot). -. - PCI. - Hot-Swap - DOS, Windows 98/2000/XP, Linux

More information

Abstract arm linux tool-chain root NET-Start! 2

Abstract arm linux tool-chain root NET-Start! 2 Lab III - Embedding Linux 1 Abstract arm linux tool-chain root NET-Start! 2 Part 1.4 Step1. tool-chain 4 Step2. PATH 4 Part 2 kernel 5 Step1. 5 Step2... 6 Step3...8 Part 3 root. 8 Step1. 8 Step2. 8 Part

More information

第5章:汇编语言程序设计

第5章:汇编语言程序设计 第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令

More information

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C AUTOMATIC TROLLEY H K Hwang K K Chen J-S Lin S-C Wang M-L Li C-C Lin W-B Lin Dept. Of Electrical Engineering Far East College ABSTRACT This paper proposes an automatic trolley which can move automatically

More information

KL DSC DEMO 使用说明

KL DSC DEMO 使用说明 :0755-82556825 83239613 : (0755)83239613 : http://www.kingbirdnet.com EMAIL Good989@163.com 1 1 KB3000 DTU... 3 1.1... 3 1.2... 3 1.3... 3 1.4... 3 2... 4 2.1 GSM/GPRS... 4 2.2... 4 2.3... 5 2.4... 6 2.5...

More information

68369 (ppp quickstart guide)

68369 (ppp quickstart guide) Printed in USA 04/02 P/N 68369 rev. B PresencePLUS Pro PC PresencePLUS Pro PresencePLUS Pro CD Pass/Fails page 2 1 1. C-PPCAM 2. PPC.. PPCAMPPCTL 3. DB9D.. STPX.. STP.. 01 Trigger Ready Power 02 03 TRIGGER

More information

PIC16F F MPLAB 08 16F LED 15 LED

PIC16F F MPLAB 08 16F LED 15 LED PIC16F877 PIC16F877 03 16F877 05 06 MPLAB 08 16F877 13 LED 15 LED 17 20 24 2 PIC16F877 PIC16F877 DIP VDD VSS CLOCK CPU :,AND,OR,XOR ROM: CPU ROM RAM: CPU,CPU I/O:CPU, CPU,, 16F877 RAM 512 128 Bank Bank

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

Microsoft Word - MSP430 Launchpad 指导书.docx

Microsoft Word - MSP430 Launchpad 指导书.docx Contents 3... 9... 14 MSP430 LAUNCHPAD 指导书 3 第一部分第一个工程 New Project File > New > CCS Project Project name: ButtonLED Device>Family: MSP430 Variant: MSP430G2553 Project templates and examples : Empty Project

More information

《计算机应用基础》学习材料(讲义)

《计算机应用基础》学习材料(讲义) 计 算 机 应 用 基 础 学 习 材 料 ( 讲 义 ) Fundamentals of Computer Application 2014-3-22 JIANGSU OPEN UNIVERSITY 第 二 学 习 周 计 算 机 基 础 知 识 ( 一 ) 导 学 在 本 学 习 周, 我 们 主 要 的 任 务 是 认 识 计 算 机 你 将 知 道 计 算 机 是 什 么 时 候 产 生 的,

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

1 TPIS TPIS 2 2

1 TPIS TPIS 2 2 1 1 TPIS TPIS 2 2 1. 2. 3. 4. 3 3 4 5 4 TPIS TPIS 6 5 350 Mark Coil F3/F6 350 M 150 M 25 M 7.12M 8 M F3 F6 F4 F7 F8 8M AA 7 350 28V 5V IC HCPL2731 0.5mA 6 8 (TPIS) TPIS 9 7 IC AT89C2051 AT89C2051 CMOS8

More information

untitled

untitled 8086/8088 CIP /. 2004.8 ISBN 7-03-014239-X.... TP313 CIP 2004 086019 16 100717 http://www.sciencep.com * 2004 8 2004 8 1 5 500 787 1092 1/16 16 1/2 391 000 1 2 ii 1 2 CAI CAI 3 To the teacher To the student

More information

audiogram3 Owners Manual

audiogram3 Owners Manual USB AUDIO INTERFACE ZH 2 AUDIOGRAM 3 ( ) * Yamaha USB Yamaha USB ( ) ( ) USB Yamaha (5)-10 1/2 AUDIOGRAM 3 3 MIC / INST (XLR ) (IEC60268 ): 1 2 (+) 3 (-) 2 1 3 Yamaha USB Yamaha Yamaha Steinberg Media

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

P4V88+_BIOS_CN.p65

P4V88+_BIOS_CN.p65 1 Main H/W Monitor Boot Security Exit System Overview System Time System Date [ 17:00:09] [Wed 12/22/2004] BIOS Version : P4V88+ BIOS P1.00 Processor Type : Intel (R) Pentium (R) 4 CPU 2.40 GHz Processor

More information

Bus Hound 5

Bus Hound 5 Bus Hound 5.0 ( 1.0) 21IC 2007 7 BusHound perisoft PC hound Bus Hound 6.0 5.0 5.0 Bus Hound, IDE SCSI USB 1394 DVD Windows9X,WindowsMe,NT4.0,2000,2003,XP XP IRP Html ZIP SCSI sense USB Bus Hound 1 Bus

More information

Computer Architecture

Computer Architecture ECE 3120 Computer Systems Assembly Programming Manjeera Jeedigunta http://blogs.cae.tntech.edu/msjeedigun21 Email: msjeedigun21@tntech.edu Tel: 931-372-6181, Prescott Hall 120 Prev: Basic computer concepts

More information

P4VM800_BIOS_CN.p65

P4VM800_BIOS_CN.p65 1 Main H/W Monitor Boot Security Exit System Overview System Time System Date [ 17:00:09] [Fri 02/25/2005] BIOS Version : P4VM800 BIOS P1.00 Processor Type : Intel (R) Pentium (R) 4 CPU 2.40 GHz Processor

More information

图 片 展 示 : 资 源 简 介 : FPGA Altera CycloneII EP2C5T144C8 (4608 个 LE) 2 路 有 源 晶 振 (50M,25M) AS & JTAG 标 准 接 口 VGA 接 口 UART 接 口 蜂 鸣 器 8bit 并 行 DAC 8 路 按 键

图 片 展 示 : 资 源 简 介 : FPGA Altera CycloneII EP2C5T144C8 (4608 个 LE) 2 路 有 源 晶 振 (50M,25M) AS & JTAG 标 准 接 口 VGA 接 口 UART 接 口 蜂 鸣 器 8bit 并 行 DAC 8 路 按 键 官 方 淘 宝 地 址 :http://metech.taobao.com/ MeTech verilog 典 型 例 程 讲 解 V1.0 笔 者 :MeTech 小 芯 技 术 支 持 QQ : 417765928 1026690567 技 术 支 持 QQ 群 :207186911 China AET 讨 论 组 http://group.chinaaet.com/293 笔 者 博 客 :http://blog.csdn.net/ywhfdl

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

Using STM32 Software Library

Using STM32 Software Library 如何使用 STM32 的软件库在 IAR 的 EWARM 下 进行应用开发 上海 步骤一 : 创建项目目录, 拷贝公共文件 1 将 STM32 软件库中 FWlib 目录中的 library 目录拷贝到所建项目的目录中 2 将软件库的 Examples 目录里的任一例程的 stm32f10x_conf.h stm32f10x_it.c stm32f10x_it.h 和 main.c 拷贝到项目的目录中

More information

JTAG ICE PC JTAG ICE JTAG ISP... 5 IDE AVR STUDIO JTAGICE JTAGICE... 12

JTAG ICE PC JTAG ICE JTAG ISP... 5 IDE AVR STUDIO JTAGICE JTAGICE... 12 ... 3... 3... 3... 3... 4 1JTAG ICE PC... 4 2JTAG ICE... 4 3... 4 4... 4 5JTAG... 5 6ISP... 5 IDE... 6 1 AVR STUDIO... 6 2 JTAGICE... 6 3JTAGICE... 12 4.... 16 5.... 17 6. JTAG ICE... 19 ISP... 20 1PonyProg2000...

More information

Converting image (bmp/jpg) file into binary format

Converting image (bmp/jpg) file into binary format RAiO Image Tool 操作说明 Version 1.0 July 26, 2016 RAiO Technology Inc. Copyright RAiO Technology Inc. 2013 RAiO TECHNOLOGY INC. www.raio.com.tw Revise History Version Date Description 0.1 September 01, 2014

More information

C/C++ - 函数

C/C++ - 函数 C/C++ Table of contents 1. 2. 3. & 4. 5. 1 2 3 # include # define SIZE 50 int main ( void ) { float list [ SIZE ]; readlist (list, SIZE ); sort (list, SIZE ); average (list, SIZE ); bargragh

More information

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模

MSP430X1XX 系列微控制器具有以下特征 结构框图 超低功耗结构体系 A 额定工作电流在 1MHz V 工作电压 C11X P11X 和 E11X 为 V 从备用模式唤醒为 6 S 丰富的中断能力减少了查询的需要灵活强大的处理能力源操作数有七种寻址模 新一代超低功耗 16 位单片机 TI MSP430 系列 美国 TI 公司的 MSP430 系列单片机可以分为以下几个系列 X1XX X3XX X4XX 等等 而且 在不断发展 从存储器角度 又可分为 ROM C 型 OTP P 型 EPROM E 型 Flash Memory F 型 系列的全部成员均为软件兼容 可以方便地在系列各型号间移植 MSP430 系列单片机 的 MCU 设计成适合各种应用的

More information

Autodesk Product Design Suite Standard 系统统需求 典型用户户和工作流 Autodesk Product Design Suite Standard 版本为为负责创建非凡凡产品的设计师师和工程师提供供基本方案设计和和制图工具, 以获得令人惊叹叹的产品

Autodesk Product Design Suite Standard 系统统需求 典型用户户和工作流 Autodesk Product Design Suite Standard 版本为为负责创建非凡凡产品的设计师师和工程师提供供基本方案设计和和制图工具, 以获得令人惊叹叹的产品 Autodesk Product Design Suite Standard 20122 系统统需求 典型用户户和工作流 Autodesk Product Design Suite Standard 版本为为负责创建非凡凡产品的设计师师和工程师提供供基本方案设计和和制图工具, 以获得令人惊叹叹的产品设计 Autodesk Product Design Suite Standard 版本包包括以下软件产产品

More information

AL-MX200 Series

AL-MX200 Series PostScript Level3 Compatible NPD4760-00 TC Seiko Epson Corporation Seiko Epson Corporation ( ) Seiko Epson Corporation Seiko Epson Corporation Epson Seiko Epson Corporation Apple Bonjour ColorSync Macintosh

More information

P4Dual-915GL_BIOS_CN.p65

P4Dual-915GL_BIOS_CN.p65 1 Main H/W Monitor Boot Security Exit System Overview System Time System Date Total Memory DIMM 1 DIMM 2 [ 14:00:09] [Wed 01/05/2005] BIOS Version : P4Dual-915GL BIOS P1.00 Processor Type : Intel (R) Pentium

More information

P4i45GL_GV-R50-CN.p65

P4i45GL_GV-R50-CN.p65 1 Main Advanced Security Power Boot Exit System Date System Time Floppy Drives IDE Devices BIOS Version Processor Type Processor Speed Cache Size Microcode Update Total Memory DDR1 DDR2 Dec 18 2003 Thu

More information

SPHE8202R Design Guide Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provi

SPHE8202R Design Guide Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provi SPHE8202R Design Guide V2.0 JUN, 2007 19, Innovation First Road Science Park Hsin-Chu Taiwan 300 R.O.C. Tel: 886-3-578-6005 Fax: 886-3-578-4418 Web: www.sunplus.com SPHE8202R Design Guide Important Notice

More information

Table of Contents Design Concept 03 Copyrights & TradeMark 04 Special Notice 05 Notice to concerned 05 Installation and Registration Introduction 07 s

Table of Contents Design Concept 03 Copyrights & TradeMark 04 Special Notice 05 Notice to concerned 05 Installation and Registration Introduction 07 s MapAsia MapKing TM User Guide Full Function Version (Pocket PC and PC) For Microsoft Pocket PC/ Pocket PC 2002/2003 Microsoft Windows XP/2000/Me/98 Edition 2004 ( : ) 2002-2004, MapAsia.com Limited Table

More information

untitled

untitled EDM12864-GR 1 24 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3 4. -------------------------------------------------------6

More information

FM1935X智能非接触读写器芯片

FM1935X智能非接触读写器芯片 FM33A0xx MCU 2017. 05 2.0 1 (http://www.fmsh.com/) 2.0 2 ... 3 1... 4 1.1... 4 1.2... 4 1.3... 5 1.3.1... 5 1.3.2... 5 1.4... 8 1.4.1 LQFP100... 8 1.4.2 LQFP80... 9 1.4.3... 9 2... 15 2.1 LQFP100... 15

More information

STM32 STM3232ARM Cortex-M3 Cortex-M3 STM32Thumb-2 STM32MCU Cortex-M3ARM MCU STM32ARM 32 ARMCortex-M3 32 STM32 Cortex-M3 ARM Cortex-M3 ARM ARM

STM32 STM3232ARM Cortex-M3 Cortex-M3 STM32Thumb-2 STM32MCU Cortex-M3ARM MCU STM32ARM 32 ARMCortex-M3 32 STM32 Cortex-M3 ARM Cortex-M3 ARM ARM STM32 ARM Cortex -M3 32 www.st.com/mcu www.stmicroelectronics.com.cn/mcu STM32 STM3232ARM Cortex-M3 Cortex-M3 STM32Thumb-2 STM32MCU 32 1632 Cortex-M3ARM MCU STM32ARM 32 ARMCortex-M3 32 STM32 Cortex-M3

More information

Simulator By SunLingxi 2003

Simulator By SunLingxi 2003 Simulator By SunLingxi sunlingxi@sina.com 2003 windows 2000 Tornado ping ping 1. Tornado Full Simulator...3 2....3 3. ping...6 4. Tornado Simulator BSP...6 5. VxWorks simpc...7 6. simulator...7 7. simulator

More information

Microsoft Word - 11.doc

Microsoft Word - 11.doc 除 錯 技 巧 您 將 於 本 章 學 到 以 下 各 項 : 如 何 在 Visual C++ 2010 的 除 錯 工 具 控 制 下 執 行 程 式? 如 何 逐 步 地 執 行 程 式 的 敘 述? 如 何 監 看 或 改 變 程 式 中 的 變 數 值? 如 何 監 看 程 式 中 計 算 式 的 值? 何 謂 Call Stack? 何 謂 診 斷 器 (assertion)? 如 何

More information

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南 Symantec Sygate Enterprise Protection 防 护 代 理 安 装 使 用 指 南 5.1 版 版 权 信 息 Copyright 2005 Symantec Corporation. 2005 年 Symantec Corporation 版 权 所 有 All rights reserved. 保 留 所 有 权 利 Symantec Symantec 徽 标 Sygate

More information

KT-SOPCx开发套件简明教程

KT-SOPCx开发套件简明教程 V2.03 2005-9-1 FPGA SOC FPGA/SOPC IT QuartusII NiosII IDE FPGA/SOPC FPGA/SOPC FPGA/SOPC CT-SOPCx FPGA/SOPC CPLD/FPGA www.fpga.com.cn CPLD/FPGA FPGA QuartusII NiosII CPU SOPC SOPC Builder NiosII IDE 1 www.21control.com

More information

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1.

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE Project Properties IDE makefile 1. Oracle Solaris Studio 12.2 IDE 2010 9 2 8 9 10 11 13 20 26 28 30 32 33 Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1. "File" > "New

More information

Oracle Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "P

Oracle Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE P Oracle Solaris Studio 12.3 IDE 2011 12 E26461-01 2 7 8 9 9 Oracle 10 12 14 21 26 27 29 31 32 33 Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "Project

More information

ARM中C和汇编混合编程及示例.doc

ARM中C和汇编混合编程及示例.doc ARM 中 C 和汇编混合编程及示例 在嵌入式系统开发中, 目前使用的主要编程语言是 C 和汇编,C++ 已经有相应的编译器, 但是现在使用还是比较少的 在稍大规模的嵌入式软件中, 例如含有 OS, 大部分的代码都是用 C 编写的, 主要是因为 C 语言的结构比较好, 便于人的理解, 而且有大量的支持库 尽管如此, 很多地方还是要用到汇编语言, 例如开机时硬件系统的初始化, 包括 CPU 状态的设定,

More information

Microsoft Word - SoftICE用户指南.doc

Microsoft Word - SoftICE用户指南.doc SST89E/V5xRD2 SST89E/V554RC SST89E/V564RD SST89E516RD2 单片机 SoftICE 用户指南 1 介绍 SoftICE 的英文是 Software In Circuit Emulator, 翻译成中文是 在电路上的软件模拟, 它是 SST 公司为方便 SST 用户使用 SST89E/V5xRD2 SST89E516RD2 SST89V516RD2 SST89E/V554RC

More information

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x 115 AVR W.V. Awdrey ATMEL AVR PIC AVR PIC AVR RISC AVR PIC AVR AVR AVR AVR AVR ATtiny15 AVR AVR AVR RAM ROM 121 116 122 ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r31 3 16 X Y Z 6-1 118 7 0

More information

HCS08微控制器上有关内存分配的几个问题.doc

HCS08微控制器上有关内存分配的几个问题.doc HCS08 shylion@gmail.com HCS08 Tiny Small shylion@gmail.com HCS08...- 1-1.1. HCS08...- 2-1.1...- 2-1.2 RAM...- 5-1.3 FLASH...- 5-1.4 Vectors...- 6-1.2....- 7-1.3. HCS08 Tiny Small...- 9-1.4. heap segment...12

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input HR7PPSC HR7PPSD SOP SOP6 +input input HR7PERB SSOP0 7

SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input HR7PPSC HR7PPSD SOP SOP6 +input input HR7PERB SSOP0 7 上海东软载波微电子有限公司 SMART www.essemi.com SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input 06 6 6 HR7PPSC HR7PPSD SOP SOP6 +input 06 6 +input 06 6 6 6 HR7PERB SSOP0 7+input 06 6 6 HR7PESC

More information

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 C C trio@seu.edu.cn C C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 Week3 C Week5 Week5 Memory & Pointer

More information

JLX

JLX PRODUCT:LCD MODULE. Model No.: JLX177-006 Product Type: 1.77 inch QVGA TFT Modoule. 产品规格书 晶联讯研发研发部 : Written By Checked By Approved By 客户名称 : 结构电子核准 地址 : 深圳市宝安区西乡宝安大道东华工业区 A3 栋 6 楼电话 :0755-29784961 Http://www.jlxlcd.cn

More information

775i65PE_BIOS_CN.p65

775i65PE_BIOS_CN.p65 1 Main H/W Monitor Boot Security Exit System Overview System Time System Date [ 14:00:09] [Wed 10/20/2004] BIOS Version : 775i65PE BIOS P1.00 Processor Type : Intel (R) CPU 3.20 GHz Processor Speed : 3200

More information

R3105+ ADSL

R3105+ ADSL ... 1 1 1... 1 1 2... 1... 3 2 1... 3 2 2... 3 2 3... 5 2 4... 5 2 4 1... 5... 7 3 1... 7 3 2... 8 3 2 1... 8 3 2 2... 9 3 3... 12 3 3 1... 13 3 3 2 WAN... 16 3 3 3 LAN... 21 3 3 4 NAT... 22 3 3 5... 24

More information

untitled

untitled MPICH anzhulin@sohu.com 1 MPICH for Microsoft Windows 1.1 MPICH for Microsoft Windows Windows NT4/2000/XP Professional Server Windows 95/98 TCP/IP MPICH MS VC++ 6.x MS VC++.NET Compaq Visual Fortran 6.x

More information

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco Windows RTEMS 1 Danilliu MMI TCP/IP 80486 QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos ecos Email www.rtems.com RTEMS ecos RTEMS RTEMS Windows

More information

STM8 的 C 语言编程 (1)-- 基本程序与启动代码分析 现在几乎所有的单片机都能用 C 语言编程了, 采用 C 语言编程确实能带来很多好处, 至少可读性比汇编语言强多了 在 STM8 的开发环境中, 可以通过新建一个工程, 自动地建立起一个 C 语言的框架, 生成后开发环境会自动生成 2 个

STM8 的 C 语言编程 (1)-- 基本程序与启动代码分析 现在几乎所有的单片机都能用 C 语言编程了, 采用 C 语言编程确实能带来很多好处, 至少可读性比汇编语言强多了 在 STM8 的开发环境中, 可以通过新建一个工程, 自动地建立起一个 C 语言的框架, 生成后开发环境会自动生成 2 个 STM8 C 语言编程与模块使用范例 目录 STM8 的 C 语言编程 (1)-- 基本程序与启动代码分析 STM8 的 C 语言编程 (2)-- 变量空间的分配 STM8 的 C 语言编程 (3) GPIO 输出 STM8 的 C 语言编程 (4) GPIO 输出和输入 STM8 的 C 语言编程 (5)--8 位定时器应用之一 STM8 的 C 语言编程 (6)--8 位定时器应用之二 STM8

More information

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10 Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10 Ác Åé å Serial ATA ( Silicon Image SiI3114) S A T A (1) SATA (2)

More information

2 12

2 12 SHENZHEN BRILLIANT CRYSTAL TECHNOLOGIC CO.,LTD. The specification for the following models Graphic LCM serial communication control board CB001 PROPOSED BY APPROVED Design Approved TEL:+86-755-29995238

More information

<4D6963726F736F667420576F7264202D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

<4D6963726F736F667420576F7264202D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63> 因 为 路 过 你 的 路, 因 为 苦 过 你 的 苦, 所 以 快 乐 着 你 的 快 乐, 追 逐 着 你 的 追 逐 内 容 简 介 本 书 根 据 2005 年 下 半 年 实 施 的 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 嵌 入 式 系 统 设 计 师 级 考 试 大 纲 精 神, 在 深 入 研 究 历 年 计 算 机 技 术 与 软

More information

Section1_16bit Arc.ppt

Section1_16bit Arc.ppt 16-bit Elite Program 2009 Summer Section-1 Microchip 16-bit 2005 Microchip Technology Incorporated. All Rights Reserved. Slide 1 MCU CPU (NOP),, (Data Memory), I/O CPU w. ALU/Working Reg. Data Mem. Data

More information

STM32 in arm seminar

STM32 in arm seminar 增强的 STM32 家族, 助您扩展应用领域 超值型 STM32F100, 增强产品的竞争力超低功耗 STM32L, 提高能源的使高能源的使用效率 超值型 STM32F100, 增强产品的竞争力 ST 为客户提供新的 STM32 选择 新增 1MB 闪存超高密度的 STM32, 提高 STM32 家族的可扩展性 新增低成本 STM32 超值型, 将 STM32 的优越性能带向 8/16 位应用领域

More information

Microsoft Word - ~ doc

Microsoft Word - ~ doc EEPROM 功能使用方法 1 适用产品 : 1.1 SM39R16A2/ SM39R12A2/ SM39R08A2 1.2 SM39R4051/ SM39R2051 1.3 SM39R04G1/ SM39R02G1 2 EEPROM 功能概述 : 2.1 使用 code flash 仿真为 Internal EEPROM, 在程序执行时, 可将 code flash 作为 data flash 储存数据使用

More information

华恒家庭网关方案

华恒家庭网关方案 LINUX V1.5 1 2 1 2 LINUX WINDOWS PC VC LINUX WINDOWS LINUX 90% GUI LINUX C 3 REDHAT 9 LINUX PC TFTP/NFS http://www.hhcn.com/chinese/embedlinux-res.html minicom NFS mount C HHARM9-EDU 1 LINUX HHARM9-EDU

More information

D/A DAC ( 1us) (10~20 ) DAC0832 1

D/A DAC ( 1us) (10~20 ) DAC0832 1 D/A DAC0832 8 ( 1us) (10~20 ) DAC0832 1 1. 20 DI7~DI0 ILE 8 8 DAC 8 D/A LE LE & RFB VREF IOUT2 IOUT1 RFB CS WR1 XFER WR2 & & AGND VCC DGND 2 DI7~DI0 ILE & 8 LE 8 DAC LE 8 D/A RFB V REF IOUT2 IOUT1 R FB

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 1 2 1 2 3 4 5 6 7 8 9 10 3 1 150 2 150 1 1 1.1 1.1.1 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.4 1.4.1 CPU 1.4.2 I/O 1.4.3 I/O 1.5 1.5.1 CISC RISC 1.5.2 1.5.3 1.6 1.6.1 1.6.2 N 1.6.3 2 2.1 2.1.1 2.1.2 2.1.3

More information

Microsoft Word - Datastream5.1_使用說明201110

Microsoft Word - Datastream5.1_使用說明201110 Datastream 5.1 操 作 手 冊 政 大 圖 書 館 商 圖 分 館 編 製 2011.10 版 權 屬 於 國 立 政 治 大 學 圖 書 館. 請 勿 侵 權 1 目 錄 前 言 -------------------------------------------------------------2 第 壹 章 Datastream advanced -----------------------------------2

More information

Arduino 1-1 Arduino 1-2 Arduino 1-3 Arduino IDE

Arduino 1-1 Arduino 1-2 Arduino 1-3 Arduino IDE Arduino 1-1 Arduino 1-2 Arduino 1-3 Arduino IDE Arduino 01 02 03 04 05 06 07 08 1-1 Arduino 2005 Massimo Banzi David Cuartielles David Mellis Arduino Arduino Arduino CC Arduino Arduino Arduino Arduino

More information