void Delay_us(uint32_t us) { uint32_t count = us * 72 / 5; // 估算循环次数 while (count--) { __NOP(); // 空操作,防止优化 } } void Delay_ms(uint32_t ms) { while (ms--) { Delay_us(1000); // 调用微秒延时 } } 2. 使用SysTick定时器实现延迟 SysTick是Cortex-M3内核...
void delay_ms(uint32_t ms){ uint32_t i, j;for(i = 0; i < ms; i++){ for(j = 0; j < 1141; j++) //这个数值是与系统频率相关的,需要进行调整 { __NOP(); // __NOP()是STM32的一个内置函数,它只是一个空操作 } } } ```在上述代码中,`__NOP()`函数是STM32F103微控制器...
while(1){A_LED_LIGHT();Delay_ms(1000);B_LED_LIGHT();Delay_ms(1000);C_LED_LIGHT();Delay...
1){LED0=0;LED1=1;delay_ms(30); //延时300msLED0=1;LED1=0;delay_ms(30); //延时300ms...
); delay_ms(5000); LCD_Clear(White) return 1; } // 定第个 LCD_Draw_Target20, 220, Red); LCD_Draw_Target(300, 20, White); while( GPIO_ReadInputDataBitGPIOG,_Pin_7);while( (1-GPIOReadInputDataBit(GPIOG,GPIO_Pin7))) { x[2] = Read_XY(CMD_RDX); y[2] = ...
delay_ms(300); //延时300ms } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 这个程序非常简单,但是我I们要重视,打好底子是最重要的,不要想着实现了就可以,要明白是怎么实现更重要,这会提高你解决复杂程序的效率,最重要的是,你要多敲代码,不懂多敲几遍,学...
{//检查指定的RCC标志位设置与否,等待低速晶振就绪52temp++;53delay_ms(10);54}55if(temp>=250) {printf("RTC Init faild!\r\n");return1;}//初始化时钟失败,晶振有问题5657RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);//设置RTC时钟(RTCCLK),选择LSE作为RTC时钟58RCC_RTCCLKCmd(ENABLE);//使能RTC时钟...
delay_init();//延时函数初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置NVIC中断分组2:2位抢占优先级,2位响应优先级LED_Init();//LED端口初始化TIM3_Int_Init(4999,7199);//10Khz的计数频率,计数到5000为500mswhile(1) { LED0=!LED0; ...
#define _DELAY_#include "sys.h"void delay_ms(u32 nms);void delay_Init(void);#endifdelay....
uart_init(9600); //串口初始化波特率为 9600 LED_Init(); //初始化与 LED 连接的硬件接口 EXTIX_Init(); //外部中断初始化 LED0=0; //点亮 LED while(1) { printf("OK\n"); delay_ms(1000); } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14....