版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
附录#include"delay.h"#include"sys.h"#include"usart.h"#include"AD9833.h"#include"lcd1602.h" unsignedchark_num=0; unsignedlongBujinData=1; unsignedlongFreqData=100; unsignedintAmpData=100; unsignedcharWaveModle=2; unsignedcharflag_key,flag_show,flag_k1,flag_k2,flag_k3,flag_k4;/*************************************************函数:voidRCC_Configuration(void)功能:复位和时钟控制配置参数:无返回:无**************************************************/voidRCC_Configuration(void){ErrorStatusHSEStartUpStatus;//定义外部高速晶体启动状态枚举变量RCC_DeInit();//复位RCC外部设备寄存器到默认值RCC_HSEConfig(RCC_HSE_ON);//打开外部高速晶振HSEStartUpStatus=RCC_WaitForHSEStartUp();//等待外部高速时钟准备好if(HSEStartUpStatus==SUCCESS)//外部高速时钟已经准别好{FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//开启FLASH预读缓冲功能,加速FLASH的读取。所有程序中必须的用法.位置:RCC初始化子函数里面,时钟起振之后FLASH_SetLatency(FLASH_Latency_2);//flash操作的延时 RCC_HCLKConfig(RCC_SYSCLK_Div1);//配置AHB(HCLK)时钟等于==SYSCLKRCC_PCLK2Config(RCC_HCLK_Div1);//配置APB2(PCLK2)钟==AHB时钟RCC_PCLK1Config(RCC_HCLK_Div2);//配置APB1(PCLK1)钟==AHB1/2时钟RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//配置PLL时钟==外部高速晶体时钟*9=72MHzRCC_PLLCmd(ENABLE);//使能PLL时钟while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)//等待PLL时钟就绪{}RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//配置系统时钟=PLL时钟while(RCC_GetSYSCLKSource()!=0x08)//检查PLL时钟是否作为系统时钟{}}RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);//允许GPIOB、AFIO时钟}/*************************************************函数:voidGPIO_Configuration(void)功能:GPIO配置 PB11PB10PB0PA7PA6PA5PA4PA3参数:无返回:无**************************************************/voidGPIO_Configuration(void){GPIO_InitTypeDefGPIO_InitStructure;//定义GPIO初始化结构体 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11|GPIO_Pin_10|GPIO_Pin_1|GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; //GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); /*PC6*/}voidKey(){ if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0)==Bit_RESET) { delay_ms(5); if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0)==Bit_RESET&&flag_k1==0) { flag_key=1; flag_k1=1; } } else { flag_k1=0; } if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==Bit_RESET) { delay_ms(5); if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1)==Bit_RESET&&flag_k2==0) { flag_key=2; flag_k2=1; } } else { flag_k2=0; } if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)==Bit_RESET) { delay_ms(5); if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)==Bit_RESET&&flag_k3==0) { flag_key=3; flag_k3=1; } } else { flag_k3=0; } if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)==Bit_RESET) { delay_ms(5); if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)==Bit_RESET&&flag_k4==0) { flag_key=4; flag_k4=1; } } else { flag_k4=0; }}intmain(void){ unsignedchardat1[]="Setf"; unsignedchardat2[]="sin"; unsignedchardat3[]="HZ"; unsignedchardat4[]="AM="; unsignedchardat5[]="SetA"; unsignedchardat6[]="SetB"; unsignedchardat7[]="Tri"; unsignedchardat8[]="Squ"; unsignedchardat9[]="KHZ"; RCC_Configuration(); GPIO_Configuration();// uart_init(115200); //串口初始化为115200 delay_init(); delay_ms(500); LCD1602_Init(); delay_ms(50); DispStrAt(dat1,0,0); DispStrAt(dat8,6,0); DispDecSpaceAt(FreqData,0,1,7); DispStrAt(dat3,7,1); DispDecSpaceAt(BujinData,10,0,6); DispDecSpaceAt(AmpData/3.3,13,1,3); DispStrAt(dat4,10,1);AD9833_Init_GPIO();AD9833_WaveSeting(FreqData,0,WaveModle,0);//2KHz, 频率寄存器0,正弦波输出,初相位0AD9833_AmpSet(AmpData); //设置幅值,幅值最大255 while(1) { // DelayMs(100); //延时100ms Key(); if(flag_key==3) { flag_key=0; k_num++; if(k_num==3) k_num=0; if(k_num==0) DispStrAt(dat1,0,0); if(k_num==1) DispStrAt(dat5,0,0); if(k_num==2) DispStrAt(dat6,0,0); } elseif(flag_key==4) { flag_key=0; WaveModle=WaveModle+1; if(WaveModle==3)WaveModle=0; if(WaveModle==1){AD9833_WaveSeting(FreqData,0,SIN_WAVE,0);DispStrAt(dat2,6,0);} elseif(WaveModle==0){AD9833_WaveSeting(FreqData,0,TRI_WAVE,0);DispStrAt(dat7,6,0);} elseif(WaveModle==2){AD9833_WaveSeting(FreqData,0,SQU_WAVE,0);DispStrAt(dat8,6,0);} } if(k_num==0) { if(flag_key==1) { flag_key=0; if(FreqData<12000000) FreqData=FreqData+BujinData; AD9833_WaveSeting(FreqData,0,WaveModle,0); if(FreqData<10000000) { DispDecSpaceAt(FreqData,0,1,7);DispStrAt(dat3,7,1); } else{ DispDecSpaceAt(FreqData/1000,0,1,6);DispStrAt(dat9,6,1); }// while(key1==0); } elseif(flag_key==2) { flag_key=0; if(FreqData>1) FreqData=FreqData-BujinData; if(FreqData>12000000) FreqData=0; AD9833_WaveSeting(FreqData,0,WaveModle,0); if(FreqData<10000000) { DispDecSpaceAt(FreqData,0,1,7);DispStrAt(dat3,7,1); } else{ DispDecSpaceAt(FreqData/1000,0,1,6);DispStrAt(dat9,6,1); }// while(key2==0); } } elseif(k_num==1) { if(flag_key==1) { flag_key=0; if(AmpData<165) AmpData=AmpData+3.3; AD9833_AmpSet(AmpData); DispDecSpaceAt(AmpData/3.3,13,1,3);DispStrAt(dat4,10,1);// while(!key1); } if(flag_key==2) { flag_key=0; { if(AmpData>3.3) AmpData=AmpData-3.3; } AD9833_AmpSet(AmpData); DispDecSpaceAt(AmpData/3.3,13,1,3);DispStrAt(dat4,10,1);// while(!key2);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026医学检验期末复习-医学细胞生物学(本医学检验)历年题库含答案详解
- 2026医学三基考试(放射学)历年参考题库含答案详解
- 2026北京卫生事业单位招聘考试(公共卫生)历年参考题库含答案详解
- 微型金融基础试题及答案详解
- 2026副高卫生职称-临床医学类-心血管内科学(副高)代码:001历年参考题库含答案详解
- 2026初级经济师资格考试(商业经济专业知识与实务)历年参考题库含答案详解
- 2026年度社工考试试题及答案
- 北京交通审计专业试题及答案大全
- 与未来的不确定性共舞 教学设计-2023-2024学年高中心理健康
- 2026医疗元宇宙概念应用现状与产业化前景分析报告
- 2026年浙江省员额检察官遴选考试真题及答案
- 2026年新疆库车市面向社会公开招聘市属国有企业工作人员62人笔试参考题库及答案详解
- 北师大版2025-2026学年度第二学期八年级数学下册期末模拟试卷7
- 新苏教版六年级上册科学教学计划
- ISOTS 68182024 中药艾条质量试验方法废颗粒浓度标准立项发展报告
- 医用耗材二级库房管理制度
- 三年级上册语文一课一练
- 砂石料场土地复垦方案报告书
- 深静脉血栓形成诊断和治疗指南(第四版)总结2026
- 2026年华侨、港澳、台联考高考数学试卷(含解析)
- 妊娠期贫血防治指南
评论
0/150
提交评论