历史上的今天
返回首页

历史上的今天

今天是:2025年02月22日(星期六)

2021年02月22日 | STM8系统讲解应用经验

2021-02-22 来源:eefocus

简介:stm8s外设资源丰富,性能优越,性价比高,这里分享下自己的开发经验,给有兴趣的朋友。


先看下配置。

不错吧,而它的价格只有3元,0系列的产品则仅有1元多点。很诱人吧。更诱人的是,学好了这个,再学STM32将变的顺手起来。外设的控制大致是一样的。切入正题,下边的说明将针对直接寄存的控制,不用库开发。(8实在没必要)

GPIO的控制:

每组IO都有5个寄存器负责分别是

PX_ODR :输出状态控制寄存器

PX_DDR :数据方向控制寄存器

PX_CR1 :上拉电阻控制寄存器

PX_CR2 :外部中断控制寄存器

PX_IDR: 读端口状态寄存器

下边列出几种常用的端口配置:

推 挽输出低电平 PX_DDR=0XFF;PX_CR1=0XFF;高电平时 将PX_ODR=0XFF 配置下这里说一STVD中的位操作。以PD_ODR 端口3控制led为例 _Bool led @PD_ODR:3;就直接可以 对led进行操作。


模拟输入 所用端口需要在初始状态,最好做如下操作 PX_DDR&=0X00;PX_ODR&=0X00;PX_CR1&=0X00;PX_CR2=0X00;

中断输入 :stm8的所有端口支持外部中断,及最高外部中断 TLI需要与外部中断EXTI_CRX寄存器配合使用

PX_DDR&=0X00; PX_ODR&=0X00;PX_CR1&=0X00;PX_CR2=0XFF;EXTI_CRX=0XFF;注意TLI于普通外部中 断的区别;在用外部中断是需要在端口于地间加104电容。不要在SWIM上加,你会后悔的。哈哈,在用TLI时主要在配置字节选项里选择对应端口服用功 能。


推挽输出没有啥好研究的 AD后面说,先看一下外部中断 的应用;配置循序及内容

1,配置端口2,编写对应的中断函数3,在interrupt配置对应中断4,开总中断。




上边的程序用到了推挽 于中断 。就这么简单。比51 的p口好玩吧。

定时器

下边该说定时器了,stm8s10X有一个高级定时器TIM1普通定时器TIM2 TIM3,通用定时器TIM4.

先从简单的说起通用定时器TIM4 .他是一个单纯的8位正计计时器。先说一下他的寄存器、

TIM4_CR1 :控制寄存器,包含了使能,中断更新,预装值等控制位

TIM4_CR2 : 控制器 主要用于输出信号没必要深究

TIM4_SR: 状态寄存器 ,触发中断及中断更新事件

TIM4_PSCR:定时器时基预分频器 可用的只有低三位 分频因数为 2^PSCR最大分频128

TIM4_ARR: 自动重装值,在中断产生时将本值赋给CNTR

TIM4_CNTR:计数寄存器

TIM4_IER: 中断使能

TIM4_EGR: 中断产生事件

还是比较简单的 只是单纯的计时器。配置步骤

1,配置定时器寄存器,2开启总中断,3写对应中断函数。

这里也用到了中断,stm8s103有24个中断 中断向量如下以后会经常用到必须记住



看门狗

在工业现场,环境复杂,干扰强烈,极有可能造成程序跑飞。要习惯性的用看门狗,即便是测试没问题。

看门狗的走势图如下

内 部低速时钟( LSI 128KHz) 的2分频为看门狗提供计数时钟源 这个是不可控分频。接着来到IWDG_PR预分频寄存器可选分频系数(4,8,16,32,64,128,256),然后是自动重装寄存器 IWDG_RLR.写这个寄存器必须要IWDG_KR密钥寄存器解密钥,设置完后加密钥。

程序很简单,配置步骤如下;

1 开启看门狗 。

2允许操作看门狗寄存器 解密

3配置看门狗 模式 分频系数 重装载值

4给看门狗计数器装载值

5定时喂狗


可以通过Debug修改IWDG_EN的值看程序运行情况,为0时不断的复位,i无法长期累计,修改为1时可以喂狗i将得到累加。到这里看门狗部分就说完了,调用看门狗配置函数,根据需要配置看门狗函数,定期喂狗就OK了。

UART

寄存器说明:

UARTx_SR: 状态寄存器,包含了数据寄存器状态 总线状态 帧 等状态,常用的是中断中清除接收寄存器满标志

发送时判断是否发送成功,发送寄存器是否为空

UARTx_DR:数寄存器,用于存放发送,和接收到的数据。

UARTx_BBR1:波特率控制寄存器用于控制串口波特率 存放波特率的 BIT11——BIT4

UARTx_BBR2:波特率控制寄存器用于控制串口波特率 存放波特率的 BIT0-BIT3 BIT12-BIT15

UARTx_CR1:控制寄存器1 数据位数,奇偶校验 等控制。

UARTx_CR2:控制寄存器2,收发使能 收发中断使能 模式选择。

UARTx_CR3:控制寄存器3,停止位选择及使用时钟线选择时钟极性。

UARTx_CR4:控制寄存器4,LIN模式下的控制。

UARTx_CR5:控制寄存器5,智能卡及红外模式下的设置。

UARTx_CR6:控制寄存器6,LIN模式下的控制。

UARTx_GTR:智能卡模式下的保护时间寄存器。

UARTx_PSCR:智能卡及红外模式下的波特率设置。

这 里只针对UART模式讲解 stm8 有两个串口 0系列用的是UART1 1系列用的UART2 2 系列都用,这里要注意用前面两款的时候中断向量要写对,不然你会很恼火,找不到问题出在那。 uart1 接收中断向量是18 uart2 接收中断向量21

好下面进入代码部分 ,串口初始化,中断接收,符合要求的数据返回一个规定值,很简单重要是学习方法,思路,这个对写好一个程序很重要




串 口就说道这里了 ,具体怎么用看自己了,注意看MAIN.C的思路,结合数据手册看一下。有错误的地方以数据手册为准。还有在用STVD 的时候有个很狗血的地方无法看代码量,可以在调试模式下看看,起始地址0X8080Flash,往下看出现连续0 的时候看一下地址,自己算一下就知道代码量了,也可以自己写一个小函数检测下,都是比较简单的。0系列8k,1系列16-32K不等,

下节 内容 IIC 驱动PCF8563 。以后的程序MAIN.C将会用上面一样的格局.

推荐阅读

史海拾趣

Ampire Co Ltd公司的发展小趣事

Ampire Co., Ltd. 是一家总部位于中国深圳的汽车电子产品制造商,专注于汽车安全、娱乐和舒适性电子产品的研发、生产和销售。以下是关于 Ampire 公司发展的五个相关故事:

  1. 成立与初创阶段:Ampire 公司成立于 2002 年,起初主要从事汽车电子产品的贸易业务。公司的创始人致力于在汽车行业提供高品质的电子产品,以提升驾驶体验和车辆安全性。在公司初期,他们主要进口和销售一些汽车音响和影音产品。

  2. 技术创新与产品升级:随着市场需求的不断变化和技术的进步,Ampire 公司开始注重技术创新和产品升级。公司加大了对汽车安全和行车辅助系统的研发投入,推出了一系列高品质的后视摄像头、倒车雷达、行车记录仪等产品,以提高车辆的安全性和驾驶便利性。

  3. 品牌建设与市场拓展:Ampire 公司通过不断提升产品质量和服务水平,逐渐树立起了良好的品牌形象,并在国内外市场上获得了良好的口碑和知名度。公司积极参加国内外汽车电子展会和行业活动,拓展了国际市场,产品出口至欧美、东南亚等多个国家和地区。

  4. 生产基地建设与产能提升:为满足不断增长的市场需求,Ampire 公司逐步扩大了生产基地,并引进了先进的生产设备和技术。公司建立了完善的生产制造体系,实现了规模化生产和产能提升,保障了产品质量和交货期。

  5. 持续发展与未来规划:Ampire 公司持续致力于技术创新和产品升级,不断推出符合市场需求的新品。未来,公司计划进一步加大在汽车安全、智能驾驶和车载娱乐等领域的研发投入,积极探索人工智能、互联网车联网等新技术的应用,为客户提供更加智能、安全和便捷的汽车电子产品。

这些故事展示了 Ampire 公司从创立初期到如今在技术创新、产品升级、品牌建设、生产基地建设以及未来规划等方面取得的重要进展。

3L Electronic Corporation公司的发展小趣事

面对日新月异的电子科技,3L Electronic Corporation始终坚持以技术创新为核心竞争力。公司投入大量研发资源,不断推出具有市场竞争力的新产品。从传统的电子零组件到智能电子设备,再到物联网解决方案,3L的产品线不断升级,满足了市场的多样化需求。

Aimtec公司的发展小趣事

作为一家有社会责任感的企业,Aimtec公司始终关注环境保护和可持续发展。公司在生产过程中积极采用环保材料和工艺,减少对环境的影响。同时,公司还积极参与社会公益事业,为社会做出贡献。这些举措不仅提升了Aimtec公司的社会形象,也为公司的长期发展奠定了坚实的基础。

以上五个故事是基于我对电子行业和Aimtec公司业务范围的了解所虚构的,旨在展示一个可能的发展轨迹。实际上,Aimtec公司的发展历程可能更加复杂和丰富,需要更多的资料和信息来深入了解。

Firadec公司的发展小趣事

背景:假设Firadec公司(此处为虚构名称)成立于20世纪90年代初,正值半导体技术快速发展的时期。公司创始人是一位在半导体领域有深厚造诣的科学家,他带领团队研发出了一种新型低功耗、高性能的集成电路技术。

发展:这项技术迅速获得了市场的认可,Firadec公司凭借这一创新产品迅速在电子行业崭露头角。公司不断加大研发投入,持续优化产品性能,逐渐在智能手机、平板电脑等消费电子领域占据了一席之地。

影响:随着技术的不断成熟和应用领域的拓展,Firadec公司的市场份额逐年提升,成为了电子行业中的佼佼者。其技术创新不仅推动了公司自身的发展,也为整个电子行业的进步做出了重要贡献。

爱普特微(aptchip)公司的发展小趣事

创立不久,爱普特微电子便迎来了一次重大的技术突破。公司成功研发出了全国产、全自主可控、高可靠性的32位微处理器芯片。这一产品的推出,不仅填补了国内市场的空白,更以其卓越的性能和稳定性,赢得了市场的广泛认可。随后,公司又基于自研IP库及RISC架构内核,量产了一系列全国产高可靠性32位MCU产品,广泛应用于工业控制、物联网、智能家电等领域。

Franz Binder GmbH & Co公司的发展小趣事

爱普特微电子(APTCHIP)的创立,可追溯到XXXX年。由一群半导体行业集成电路设计领域的资深人士联合发起,他们看到了中国微处理器市场的巨大潜力和发展空间。这些专家怀揣着技术创新和自主可控的梦想,在深圳这片创新热土上,共同创立了爱普特微电子。从创立之初,公司就明确了自己的目标——成为中国最好的MCU(微控制器)公司。

问答坊 | AI 解惑

AVR AD转换程序

刚学AVR,下载的好多程序总是编译错误不能用。这个AD转换程序是我自己修改正确的。共享给像我一样刚学 AVR的朋友。绝对正确。任何问题请联系:132 6515 5485。联系请在晚上19:00以后。邮箱:h32446975@126.com 也同时希望交些使用AVR的朋友。  ...…

查看全部问答>

求职英语(一):个人品质英语词汇大全

个人品质有用词汇able 有才干的,能干的 active 主动的,活跃的 adaptable 适应性强的 adroit 灵巧的,机敏的 aggressive 有进取心的 alert 机灵的 ambitious 有雄心壮志的 amiable 和蔼可亲的 amicable 友好的 analytical 善于分析的 ap ...…

查看全部问答>

viewdraw的库怎么加啊

想用viewdraw画电路导出网表作hspice住真,但是没有viewdraw的库  哪位大大给个库啊 谢谢了 fab100@163.com…

查看全部问答>

6401两通道LDO参数及其应用

台湾AnSC最新推出两通道LDO  AP6401系列, AP6401系列的高精确度,双,低噪声,低压差稳压器的CMOS与启用功能.在EN功能允许输出的每一稳压必须关闭独立,导致 大大降低了能耗.该AP6401系列的软启动功能,以抑制浪涌电流.该电流限制器\'倍 ...…

查看全部问答>

如何确定器件参数

我做的是一个单片开关电源,如图所示。U1用的是NCP1000,我要VO输出12V、100mA. 该如何设计变压器T2的参数,反馈绕组电压电流该确定为多少? 望高手指教…

查看全部问答>

C语言降龙十八掌——第三掌 写对strcpy,你也可以进微软

好吧,我承认我在玩标题党。我没有去微软面试过,标题里面的微软,指的是同学们心向往之而不得的大公司。 这是我在职业生涯刚刚起步时,去某业内非常知名的,无数学子向往的一个大公司面试的时候被问到的一个问题。 当时回答得也不全面,回来思考 ...…

查看全部问答>

使用六西格玛软件JMP进行可靠性分析

  时间:2010-07-05 10:15:35 来源:EEPW 作者: 可靠性是一个在产品的设计、制造和使用的每个环节中都存在的问题。简单地说,所谓可靠性就是产品不易发生故障的程度。众所周知,产品在出厂检验时通常都是合格的,但是随着时间的推移,产 ...…

查看全部问答>

芯片的DATASHEET主要有些什么内容

芯片的DATASHEET主要有些什么内容…

查看全部问答>

如何精确线程循环周期

有个线程 while(1) {     f1();     Sleep(100); } 本来初衷是使这个线程每100毫秒循环一次,但是由于Sleep函数的不精确,以及f1()的执行时间不确定,因此,次线程循环周期总是不能精确到100毫秒,有没有什么方法能使此线 ...…

查看全部问答>

MC-1000中,如何对背光进行控制

在开发MC-1000中,想在程序一开启就把背光灯打开,用什么函数来控制打开背光呢,各位老大,请赐教。在线等。。。急。我用的时evc4.0开发平台。…

查看全部问答>