logo资料库

stm32产生方波信号.docx

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
产生 1khz 的方波信号 #include "stm32f10x.h" void delay_us(u32 nus) { u32 temp; SysTick->LOAD = 9*nus; //延时指定时间 SysTick->VAL = 0X00; 数器 SysTick->CTRL = 0X01; 减到零无动作,外部时钟源 do { temp=SysTick->CTRL; //读取当前倒计数值 //清空计 //使能, }while((temp&0x01)&&(!(temp&(1<<16)))); //等待时间到达 SysTick->CTRL = 0x00; 数器 SysTick->VAL = 0X00; //关闭计 //清空计
数器 } void delay_ms(u32 nms) { u32 temp; SysTick->LOAD = 9000*nms; 定时间 SysTick->VAL = 0X00; 数器 SysTick->CTRL = 0X01; 减到零无动作,外部时钟源 do { temp=SysTick->CTRL; //读取当前倒计数值 //延时指 //清空计 //使能, }while((temp&0x01)&&(!(temp&(1<<16)))); //等待时间到达 SysTick->CTRL = 0x00; 数器 SysTick->VAL = 0X00; 数器 } //关闭计 //清空计
int main(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB,ENABLE);//使能 PA,PB 端口时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0->PA.8 端口配置,发光指示 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz GPIO_Init(GPIOA,&GPIO_InitStructure); //根据设 定参数初始化 GPIOA.8 GPIO_SetBits(GPIOA,GPIO_Pin_8); //PA.8 输出高 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //LED1->PB.9 端口配置, 推挽输出方波 GPIO_Init(GPIOB,&GPIO_InitStructure); //推挽输 出,IO 口速度为 50MHz GPIO_SetBits(GPIOB,GPIO_Pin_9); //PB.9 输出高
while(1) { GPIO_ResetBits(GPIOA,GPIO_Pin_8); GPIO_SetBits(GPIOB,GPIO_Pin_9); delay_us(500); GPIO_SetBits(GPIOA,GPIO_Pin_8); GPIO_ResetBits(GPIOB,GPIO_Pin_9); delay_us(500); } }
分享到:
收藏