您现在的位置是:首页» windows系统» stm8编程代码优化,stm8s芯片编程软件

stm8编程代码优化,stm8s芯片编程软件

2024-07-13 13:26:51
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。STM8的C语言编程(5)--8位定时器应用之一在STM8单片机内有多个计时器资源8一个固定的计时器,也是常见的16位置计时

本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。

STM8 的 C 语言编程( 5 )-- 8 位定时器应用之一

在 STM8 单片机内有多个计时器资源 8 一个固定的计时器,也是常见的 16 位置计时器和先进的计时器。 今天的实验是最简单的 8 位定时器 TIM4 拖延,然后开车 LED 为了简化,这里是一个程序查询,以确定时间表是否生成更新事件,以确定时间表延迟是否结束。

同样还是利用 ST 产生一种开发工具的 C 修改程序的框架,然后修改它 main.c ,修改后的代码如下。

编译后,下载到开发板上,运行程序,你可以看到 LED 在闪烁或使用无线电时,你可以 LED 引脚上看到方波。

这里特别提醒的是,从 ST 在手册中,这个计时器是一个附加程序 1 这个计数器,但在实验过程中我感觉不太好,经过反复的实验,我认为应该减少 1 计算器(也许我的手册是错的,也许有误解)。 例如,在调度器中插入自动加载注册表时 255 在最低的频率上,按照下面的代码计算,生成的频率为 30HZ 在启动时,输入自动装载注册表 1 所产生的最大波频率大约是 3.9K 就是说,实际频率是 ARR 寄存器的值 +1 。

// 程序描述:通过初始化计时器 4 ,进行延时,驱动 LED 闪烁

//            LED 接在 MCU 的 GPIO 的 PD3 上

#include "STM8S207C_S.h"

main()

{

// 首先初始化 GPIO

PD_DDR = 0x08;

PD_CR1 = 0x08;              // 将 PD3 设置成推挽输出

PD_CR2 = 0x00;

// 然后初始化定时器 4

TIM4_IER = 0x00;            // 禁止中断

TIM4_EGR = 0x01;            // 允许产生更新事件

TIM4_PSCR = 0x07;           // 计数器时钟 = 主时钟 /128=2MHZ/128

// 相当于计数器周期为 64uS

TIM4_ARR = 255;             // 重载时设置注册表值, 255 是最大值

TIM4_CNTR = 255;            // 设定计数器的初值

// 定时周期 =(ARR+1)*64=16320uS

TIM4_CR1 = 0x01;            // b0 = 1, 允许计数器工作

// b1 = 0, 允许更新

// 设置控制器,开始计时器

while(1)                    // 进入无限循环

{

while((TIM4_SR1 & 0x81) == 0x00);      // 等待更新标志

TIM4_SR1 = 0x00;                       // 清除更新标志

PD_ODR = PD_ODR ^ 0x08;                // LED 驱动信号取反

// LED 闪烁频率 =2MHZ/128/255/2=30.63

}

}

XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com