STM32 显示代码提示 以及延时函数

这篇具有很好参考价值的文章主要介绍了STM32 显示代码提示 以及延时函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

control + alt + space文章来源地址https://www.toymoban.com/news/detail-405740.html

#ifndef __MYDelay__
#define __MYDelay__

#include "stm32f10x.h"

void MYDelay_Init(void);
void DelayUs(uint32_t t);
void DelayMs(uint16_t t);
void DelayS(uint16_t t);
//void delaymms(uint32_t t);

#endif

#include "stm32f10x.h"                  // Device header

#include "MYDelay.h"

static u8 fac_us=0; //9
static u16 fac_ms=0;//9000

void MYDelay_Init(void) {
    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //f=9M
    fac_us=SystemCoreClock/8000000;
    fac_ms=(u16)fac_us*1000;
}

void DelayUs(uint32_t t) {
	u32 tmp;

	SysTick->LOAD=t*fac_us; //倒计时
	SysTick->VAL=0x00;	//清空当前的
	SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //始能

	do {
		tmp=SysTick->CTRL;
	} while((tmp&0x01)&&!(tmp&(1<<16)));
	SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
	SysTick->VAL=0x00;

}

void DelayMs(uint16_t t) {
    u32 tmp;

    SysTick->LOAD=t*fac_ms; //倒计时
    SysTick->VAL=0x00;	//清空当前的
    SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //始能

    do {
        tmp=SysTick->CTRL;
    } while((tmp&0x01)&&!(tmp&(1<<16)));
    SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
    SysTick->VAL=0x00;
}

void DelayS(uint16_t t) {
	for(int i=0;i<1000;i++) DelayMs(t);
}

//void delaymms(uint32_t t) {
//    t=t*8000;
//    for(; t>0; t--) ;
//}

到了这里,关于STM32 显示代码提示 以及延时函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 HAL库 中断处理中使用延时函数(HAL_Delay)

    今天在学习STM32 HAL库外部中断,使用的是按键触发外部中断,想在外部中断里面写一个按键消抖,也就是在HAL库外部中断处理函数中使用了HAL_Delay() 函数,后来经过实验,在外部中断处理函数(void EXTI1_IRQHandler(void))和中断回调函数(void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin))里面都

    2024年03月16日
    浏览(43)
  • stm32F103C8T6的三种延时函数

    非精准延时的方式就是使用空循环,循环内容为空。 优点是无需配置定时器,直接就能拿来使用。 缺点也很明显,就是无法实现精准延时,只能估摸着个大概,并且会造成CPU空转,不如使用硬件的方式。 以下是以TIM3为例: 初始化步骤与GPIO引脚使能一样,都是先定义一个初

    2024年02月10日
    浏览(46)
  • STM32-OLED小数显示函数

    ​ OLED即有机发光管(Organic Light-Emitting Diode,OLED)。OLED显示技术具有自发光、广视角、几乎无穷高的对比度、较低功耗、极高反应速度、可用于绕曲性面板、使用温度范围广、构造及制程简单等有点,被认为是下一代的平面显示屏新兴应用技术。 ​ OLED显示和传统的LCD显示不同

    2024年02月12日
    浏览(36)
  • STM32CubeIDE 1.10.1 代码提示自动补全

    用习惯了Eclipse的开发者,用STM32CubeIDE很快就能上手,但遗憾的是安装了最新版本后,确没有代码自动补全功能,后来查找了很多资料,终于找到了一个可以自动补全代码提示的插件,亲测很好用。   使用方法如下: 在CubeIDE的安装路径STSTM32CubeIDE_1.9.0STM32CubeIDEplugins下找到

    2024年02月11日
    浏览(56)
  • STM32实现延时

    在STM32单片机中,实现延时一般都是使用定时器,既可以使用Systick定时器,也可以使用常规的定时器。 定时器在设置了定时并开启之后,就会进入自主运行模式,其中,初始化设置这一阶段是由CPU执行相应指令完成的,之后,定时器外设就会自行计数,这个过程中,CPU就不需

    2024年02月12日
    浏览(32)
  • STM32 CAN协议讲解以及代码

    前面学习了CAN的一些理论知识,他在我们的STM32里面是怎么用的呢 前面讲了一些can的知识,在STM32里是什么样的呢 DBF调试冻结:处于程序调试模式才使用。可以设置CAN处于工作模式还是禁止收发状态,禁止收发时仍可以访问接受FIFO中的数据。 TTCM时间触发模式:设置CAN的时间

    2024年02月04日
    浏览(38)
  • LCD—STM32液晶显示(4.液晶控制代码讲解)

    目录 STM32液晶控制代码讲解 液晶接口封装介绍 使用LCD的配置步骤 内存操作要使用volatile进行修饰 图形绘制实现 绘制矩形 重点补充 指南者液晶接口原理图 左边DB00—DB15表示液晶屏的数据线引脚,分别对应STM32的FSMC外设的FSMC_D0—D15及对应的GPIO 霸道原理图如下 可以发现左边得

    2024年02月16日
    浏览(40)
  • STM32CubeMx学习FreeRTOS的绝对延时和相对延时

    在阻塞状态中 可以空闲出时间 来让低优先级的任务可以进行 有两种阻塞延时 一个是相对延时 也就是  这样的osDelay可以让在到这里的时候,延时500ms 也就是程序到这里才500ms 不记程序前面所用的时间 而还有一个绝对延时 绝对延时指的是 加上程序自己跑的时间 全部的一起

    2024年02月14日
    浏览(40)
  • STM32江科大的oled驱动代码添加显示浮点数

    最近想要用oled显示屏显示一些数据,其中有浮点数据要显示,用的是0.96OLED iic接口的四针。其中驱动代码是江科大(B站做STM32教学的)的,个人认为比较美观和实用,但是没有float类型的显示,虽然也可以放大成整数显示,但还是不够美观,所以自己写了一个函数。 /**   *

    2024年02月04日
    浏览(84)
  • 解决:STM32CubeMX生成MDK代码提示项目有问题(...have a problem)

    通过STM32CubeMX进行STM32项目创建过程中,在生成MDK代码时提示\\\"The Code is successfully generated under C:/TEST/LED but MDK-ARM V5 Project genera have a problem\\\"的解决办法: 1、检查项目名称是否为存在特殊字符、中文等,例如:例题1; 2、检查项目创建路径是否存在特殊字符、中文或空格等,例如

    2024年02月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包