STM32 延时函数,复位函数,汇编实现,精准微秒延时
Posted fly2199
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32 延时函数,复位函数,汇编实现,精准微秒延时相关的知识,希望对你有一定的参考价值。
使用汇编语言实现微秒精准延时及复位功能,移植方便
asm.c
#include "asm.h" __asm void SysCtlDelay(u32 ulCount) { subs r0, #1; bne SysCtlDelay; bx lr; } __asm void SystemReset(void) { MOV R0, #1 //; MSR FAULTMASK, R0 //; 清除FAULTMASK 禁止一切中断产生 LDR R0, =0xE000ED0C //; LDR R1, =0x05FA0004 //; STR R1, [R0] //; 系统软件复位 }
asm.h
#ifndef __ASM_H #define __ASM_H #include "main.h" extern void SysCtlDelay(u32 ulCount); extern void SystemReset(void); #endif
delay.c
void DelayUs(u16 us) { SysCtlDelay(12*us); } void DelayMs(u16 ms) { int i; for(i=0;i<ms;i++) { HAL_DelayUs(1000); } } void MCU_Reset(void) { SystemReset(); }
以上是关于STM32 延时函数,复位函数,汇编实现,精准微秒延时的主要内容,如果未能解决你的问题,请参考以下文章