怎么用stm32定时器产生5秒延时 stm32 怎样延时5秒

stm32 \u600e\u6837\u5ef6\u65f65\u79d2

\u697c\u4e3b\u6211\u7ed9\u4f60delay_ms \u548c delay_us \u591a\u8c22\u51e0\u4e2adelay_ms()\u5c31\u53ef\u4ee55\u79d2\u4e86
#include
static u8 fac_us=0;//us\u5ef6\u65f6\u500d\u4e58\u6570
static u16 fac_ms=0;//ms\u5ef6\u65f6\u500d\u4e58\u6570
//\u521d\u59cb\u5316\u5ef6\u8fdf\u51fd\u6570
//SYSTICK\u7684\u65f6\u949f\u56fa\u5b9a\u4e3aHCLK\u65f6\u949f\u76841/8
//SYSCLK:\u7cfb\u7edf\u65f6\u949f
void delay_init(u8 SYSCLK)
{
SysTick->CTRL&=0xfffffffb;//bit2\u6e05\u7a7a,\u9009\u62e9\u5916\u90e8\u65f6\u949f HCLK/8
fac_us=SYSCLK/8;
fac_ms=(u16)fac_us*1000;
}
//\u5ef6\u65f6nms
//\u6ce8\u610fnms\u7684\u8303\u56f4
//SysTick->LOAD\u4e3a24\u4f4d\u5bc4\u5b58\u5668,\u6240\u4ee5,\u6700\u5927\u5ef6\u65f6\u4e3a:
//nms<=0xffffff*8*1000/SYSCLK
//SYSCLK\u5355\u4f4d\u4e3aHz,nms\u5355\u4f4d\u4e3ams
//\u5bf972M\u6761\u4ef6\u4e0b,nms<=1864
void delay_ms(u16 nms)
{
u32 temp;
SysTick->LOAD=(u32)nms*fac_ms;//\u65f6\u95f4\u52a0\u8f7d(SysTick->LOAD\u4e3a24bit)
SysTick->VAL =0x00; //\u6e05\u7a7a\u8ba1\u6570\u5668
SysTick->CTRL=0x01 ; //\u5f00\u59cb\u5012\u6570
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//\u7b49\u5f85\u65f6\u95f4\u5230\u8fbe
SysTick->CTRL=0x00; //\u5173\u95ed\u8ba1\u6570\u5668
SysTick->VAL =0X00; //\u6e05\u7a7a\u8ba1\u6570\u5668
}
//\u5ef6\u65f6nus
//nus\u4e3a\u8981\u5ef6\u65f6\u7684us\u6570.
void delay_us(u32 nus)
{
u32 temp;
SysTick->LOAD=nus*fac_us; //\u65f6\u95f4\u52a0\u8f7d
SysTick->VAL=0x00; //\u6e05\u7a7a\u8ba1\u6570\u5668
SysTick->CTRL=0x01 ; //\u5f00\u59cb\u5012\u6570
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//\u7b49\u5f85\u65f6\u95f4\u5230\u8fbe
SysTick->CTRL=0x00; //\u5173\u95ed\u8ba1\u6570\u5668
SysTick->VAL =0X00; //\u6e05\u7a7a\u8ba1\u6570\u5668
}

HAL_Delay(5000); //\u53c2\u6570\u5355\u4f4d\u662f\u6beb\u79d2

使用一个定时器或打开滴答时钟,不过5秒比较长,建议使用滴答时钟。你设置好滴答定时器,在再定时中断里面不断的使得一个变量自增,你在等待处只需判断这个变量是否超过5秒,就完成了延时。

  • STM32瀹氭椂鍣涓柇鏀规垚浜笁绉掔伃鍏
    绛旓細STM32 瀹氭椂鍣鏄16浣嶇殑鍚 鎸変綘鐨勬櫠鎸 鍜屽垎棰 鏈澶65536*0.1ms=6.5536s 鍗曚釜鐨勮瘽鎬庝箞鏁淬傘傝揪鍒8s搴旇涔熸槸鍙互鐨勶紝涓嶈繃鍒嗛寰楀鍔狅紝浣嗘槸閭f牱灏辨病72鐨勫嶆暟鍟 鍙兘鏈夌偣璇樊锛屼綘杩欐濊矾寰堢畝鍗曞晩锛屽紑淇╀釜瀹氭椂鍣紝绗竴涓畾鏃跺櫒鍦ㄥ垵濮嬪寲鐨勬椂鍊欏氨缁欎粬浣胯兘锛屽嵆寮濮嬭鏁帮紝鍦ㄨ瀹氭椂鍣ㄧ殑涓柇鍑芥暟閲岄潰鎶婅...
  • 濡備綍鍩轰簬stm32f103c8t6鍜屽洓绾縪led灞忓箷瀹炵幇鍊掕鏃
    绛旓細棣栧厛锛屾垜浠渶瑕佸STM32F103C8T6杩涜缂栫▼銆傝繖娆惧井鎺у埗鍣ㄥ熀浜嶢RM Cortex-M3鍐呮牳锛屽叿鏈変赴瀵岀殑澶栬鎺ュ彛鍜屽己澶х殑澶勭悊鑳藉姏锛岄潪甯搁傚悎鐢ㄤ簬宓屽叆寮忕郴缁熺殑寮鍙戙備负浜嗗疄鐜板掕鏃跺姛鑳斤紝鎴戜滑闇瑕浣跨敤STM32鐨勫畾鏃跺櫒鍔熻兘銆傚畾鏃跺櫒鍙互璁惧畾涓涓垵濮嬪硷紝骞朵互涓瀹氱殑棰戠巼閫掑噺锛屽綋閫掑噺鍒伴浂鏃惰Е鍙戜腑鏂傚湪缂栫▼鏃讹紝鎴戜滑棣栧厛鍒濆鍖...
  • 鎬庢牱浣跨敤STM32鍑嗙‘鐨浜х敓浠绘剰涓暟鐨勮剦鍐蹭俊鍙
    绛旓細閭d箞锛屽綋鎶婂崟鑴夊啿杈撳嚭妯″紡涓嶳CR瀵勫瓨鍣ㄩ厤鍚堜娇鐢ㄦ椂锛屽氨涓嶉毦鐢熸垚鎸囧畾鏁扮洰鐨勮剦鍐蹭釜鏁般傛鏃惰剦鍐蹭釜鏁颁负TIMx_RCR鐨勫煎姞1銆傚湪涓婇潰鍘熺悊鐨勫熀纭涓婏紝閫氳繃浣跨敤STM32瀹氭椂鍣鐨勪富浠庢ā寮忚繕鍙互鏂逛究鍦板疄鐜板懆鏈熸у湴杈撳嚭鎸囧畾鏁扮洰鐨勮剦鍐层傚亣濡傛寜涓婂浘鎵绀猴紝TIM2涓嶵IM1涓讳粠杩炴帴锛屽疄鐜板懆鏈熸х殑杈撳嚭5涓剦鍐层俆IM2 閰嶇疆涓轰富 瑙﹀彂...
  • STM32鍗曠墖鏈浣跨敤瀹氭椂鍣涓柇浜х敓1khz鐨勬柟娉
    绛旓細STM32鏈夌‖浠禤WM鍔熻兘锛屼絾搴旂敤姣旇緝澶嶆潅锛屾垜涔熷垰瀛︼紝涓嶇煡鏄惁鑳浜х敓1KHZ 鐢ㄦ椂鍣ㄤ腑鏂瘮杈冪畝鍗曪紝浣嗕綘瑕佺煡閬撹娣诲姞鍝簺澶存枃浠 int main(void){ LED_GPIO_Config();/* led 绔彛閰嶇疆锛屼篃灏辨槸閰嶇疆鍝釜绠¤剼杈撳嚭鏂规尝銆杩欓噷浠ED浠f浛锛岃繖鍙槸鏈鍩烘湰 鐨勬搷浣滐紝鏂规硶鐣 */ TIM2_Configuration(); /* TIM2 瀹...
  • stm32瀹氭椂鍣鐨勯棶棰
    绛旓細杩欎袱涓暟瀛楃殑缁勫悎鍙互浜х敓灏忎簬锛堟渶灏忓垎棰戝洜瀛愶紝鏈澶ф孩鍑哄懆鏈燂紝鎵浜х敓鐨勬椂闂达級涓嬬殑浠绘剰鏃堕棿銆備竴鑸槸浜х敓1S锛屼笉杩囧畾鏃跺櫒鍙槸鐢ㄦ潵浜х敓1S鏃堕棿澶崰鐢–PU璧勬簮浜嗭紝濡傛灉鎯充笉鍗犵敤CPU锛屽彲浠ョ敤涓涓壒娈婄殑瀹氭椂闂达紝灏辨槸婊寸瓟浜嗐傛渶鍚庤繕鏈夌涓夊彞鐨勬剰鎬濇槸灏浜х敓瀹氭椂鍣鏃跺绯荤粺鏃堕挓鐨勫垎棰戝洜瀛愩傛渚嬩腑鏄1鍒嗛锛屽氨鏄笉...
  • STM32鐢ㄥ畾鏃跺櫒鍐欎竴涓1us寤舵椂鍑虹幇璇樊銆傘傘傛眰甯姪
    绛旓細涓嶈鐢ㄧ數骞崇炕杞幓娴嬭瘯锛岀敤涓涓彉閲忓湪us瀹氭椂鍣涓柇涓幓绱姞锛屽彟澶栧啀寮涓涓1s鐨勫畾鏃跺櫒锛屽綋瑙﹀彂1s瀹氭椂鍣ㄧ殑涓柇鏃讹紝鐪嬩竴涓媢s瀹氭椂鍣ㄤ腑鏂腑绱姞鍙橀噺鐨勫兼槸澶氬皯銆傚洜涓虹數骞冲弽杞篃鏄渶瑕佹椂闂寸殑锛屼笉涓瀹氭槸浣犵殑1us瀹氭椂鍣ㄥ嚭浜嗛棶棰
  • stm32涓插彛鎵撳嵃鏃堕棿鎬庝箞鍙樻垚涓绉掓墦鍗颁竴娆
    绛旓細2銆侀厤缃瀹氭椂鍣涓柇锛氫娇鑳藉畾鏃跺櫒鐨勪腑鏂姛鑳斤紝骞跺湪涓柇鏈嶅姟鍑芥暟涓繘琛屾墦鍗版搷浣溿3銆侀厤缃覆鍙o細鍒濆鍖栦覆鍙o紝骞剁‘淇濅覆鍙g殑娉㈢壒鐜囩瓑鍙傛暟涓嶱C绔殑涓插彛璁剧疆鐩稿尮閰嶃4銆佺紪鍐欐墦鍗板嚱鏁帮細鍦ㄥ畾鏃跺櫒涓柇鏈嶅姟鍑芥暟涓紝缂栧啓鎵撳嵃鍑芥暟锛屽皢鏃堕棿淇℃伅閫氳繃涓插彛鍙戦佸埌PC绔5銆佸惎鍔ㄥ畾鏃跺櫒锛氬惎鍔ㄥ畾鏃跺櫒锛屼娇鍏跺紑濮嬭鏃跺苟瑙﹀彂瀹氭椂鍣...
  • 濡備綍鐢╯tm32鐨勫畾鏃跺櫒浜х敓涓璺痯wm杈撳嚭,鍛ㄦ湡涓500hz,鍗犵┖姣0%~100%鍙皟...
    绛旓細鍗犵┖姣斿彲 鏍规嵁 CCR1_Val 鏉ヨ皟
  • stm32瀹氭椂鍣涓嶇敤鍥炶皟
    绛旓細鏄係TM32绯诲垪涓撲负瑕佹眰楂樻ц兘銆佷綆鎴愭湰銆佷綆鍔熻楃殑宓屽叆寮忓簲鐢ㄨ璁$殑ARMCortex?-M0锛孧0+锛孧3锛孧4鍜孧7鍐呮牳銆stm32瀹氭椂鍣鏄笉鐢ㄥ洖璋冪殑锛屽洜涓烘湁涓粯璁ょ殑绌哄嚱鏁帮紝鍑芥暟鍚嶅墠闈㈠甫weak鍏抽敭瀛楃殑銆
  • 鎬庢牱浣跨敤STM32鍑嗙‘鐨浜х敓浠绘剰涓暟鐨勮剦鍐蹭俊鍙
    绛旓細浣嗘槸鍥犱负鍑芥暟鎵ц鏈潵灏辨湁涓瀹氭椂闂达紝璁$畻鍑烘潵鐨勬暟鍊煎簲璇ュ苟涓嶆槸鍑嗙‘鏁帮紝濡傛灉鐩镐綅宸姹備笉澶ц繖鏍峰氨琛岋紝瑕佹眰楂樼殑璇濆湪鍘熸湰鏁板间笂鍔犲姞鍑忓噺鎬昏兘杈惧埌銆傚彟澶浣跨敤STM32浜х敓淇″彿绠鐩村氨鏄ぇ鏉愬皬鐢紝鐩存帴浣跨敤妯$數鏁扮數鐢佃矾鑷渿鑽′骇鐢熶俊鍙锋墠鏄渶寤変环璋冭妭鏈渚挎嵎鐨勬柟寮忥紝鐧惧害鎼滆繍鏀剧數璺尝褰㈠彂鐢熷櫒鍗冲彲锛555瀹氭椂鍣涔熷彲鐢熸垚...
  • 扩展阅读:定时器设置时间步骤 ... stm32定时器参数设置 ... stm32定时器1s怎么配 ... 自动开关定时器怎么调 ... stm32嘀嗒定时器硬件 ... stm32定时器计时原理 ... stm32怎么配置定时器 ... stm32产生pwm流程图 ... stm32 定时器hal库函数 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网