基于STM32F103C8T6的Bootloder程序源码(另附网盘下载链接)

基于STM32F103C8T6的Bootloder程序源码(另附网盘下载链接)


2024年1月6日发(作者:)

#ifndef _DELAY_H#define _DELAY_H#include "stm32f10x.h"void delay_init(void);void delay_ms(u16 nms);void delay_us(u32 nus);#endifdelay.c#include "delay.h"static u8 fac_us = 0; //us延时倍乘数static u16 fac_ms = 0; //ms延时倍乘数void delay_init(void){ SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //选择外部时钟 HCL/8 fac_us = SystemCoreClock/8000000; //为系统时钟的1/8 fac_ms = (u16)fac_us * 1000;}void delay_us(u32 nus){ u32 temp; SysTick->LOAD = nus * fac_us;//时间加数 SysTick->VAL = 0x00;//清空计数器 SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;//开始倒数

do { temp = SysTick->CTRL; }while((temp & 0x01) &&! (temp & (1<<16))); //等待时间到达

SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;//关闭计数器、 SysTick->VAL = 0x00;//清空计数器}void delay_ms(u16 nms){ u32 temp; SysTick->LOAD = (u32)nms * fac_ms;//时间加载(SysTick->LOAD为24bit) SysTick->VAL = 0x00;//清空计数器 SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; //开始倒数

do { temp = SysTick->CTRL; }while((temp & 0x01) &&! (temp & (1<<16))); //等待时间到达

SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;//关闭计数器 SysTick->VAL = 0x00;//清空计数器}usart.h

va_start(ap,data); while( *data != 0) { if( *data == 0x5C ) // '' { switch ( *++data ) { case 'r': USART_SendData(USART1,0x0D); data++; break;

case 'n': USART_SendData(USART1,0x0A); data++; break;

default: data++; break; } } else if( *data == '%' ) { switch ( *++data ) { case 's': //字符串 s = va_arg(ap,const char *); for(;*s;s++) { USART_SendData(USART1,*s); while( USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET ); } data++; break;

case 'd': d = va_arg(ap,int); itoa(d,buf,10);

for(s = buf;*s;s++) { USART_SendData(USART1,*s); while( USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET ); } data++; break;

default: data++; break; } } else USART_SendData(USART1,*data++); while( USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET); }}flash.h


发布者:admin,转转请注明出处:http://www.yc00.com/news/1704537173a1356584.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信