日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

实现流水灯以间隔500ms的时间闪烁(系统定时器SysTick实现的精确延时)

發(fā)布時間:2023/12/9 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实现流水灯以间隔500ms的时间闪烁(系统定时器SysTick实现的精确延时) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
/** ****************************************************************************** * @file main.c * @author iuc * @version version 1.0 * @date 2015-5-19 19:37:52 * @brief 流水燈閃爍 ****************************************************************************** * @attention * 實現(xiàn)流水燈以間隔500ms的時間閃爍(系統(tǒng)定時器SysTick實現(xiàn)的精確延時) * ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "stm32f10x.h" /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ u32 temp = 0; /* Private function prototypes -----------------------------------------------*/ void Delay_SysTick_Init(void); void Led_Init(void); void Delay_us(unsigned n); /* Private functions ---------------------------------------------------------*/ /** * @brief * @param * @retval */ int main(void) { Led_Init(); Delay_SysTick_Init(); while(1) { GPIO_SetBits(GPIOD,GPIO_Pin_1); Delay_us(500); //延時500毫秒 GPIO_ResetBits(GPIOD,GPIO_Pin_1); Delay_us(500); } } void Led_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); // 開啟時鐘 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOD, &GPIO_InitStructure); } void Delay_SysTick_Init(void) { if(SysTick_Config(72000)) // 設置為計數(shù)72000次進入中斷一次,就是1毫秒進入中斷一次 { while(1); } SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; // 關閉滴答定時器,待需要的時候再打開 } void Delay_us(unsigned n) // 延時n毫秒 { temp = n; SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; // 開啟滴答定時器 while(temp != 0); }

轉載于:https://www.cnblogs.com/iucforever/p/4515382.html

總結

以上是生活随笔為你收集整理的实现流水灯以间隔500ms的时间闪烁(系统定时器SysTick实现的精确延时)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。