ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:19.10KB ,
资源ID:11473668      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11473668.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(STM32产生频率可调正弦波锯齿波三角波LCD界面控制.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

STM32产生频率可调正弦波锯齿波三角波LCD界面控制.docx

1、STM32产生频率可调正弦波锯齿波三角波LCD界面控制 STM32产生频率可调正弦波、锯齿波、三角波&LCD界面控制此程序能输出两路通道,三路波形,利用STM32的DAC,TIM,LCD,和DMA控制的发射出正弦波,锯齿波和三角波,每种波形频率可调,独立输出,独立显示频率,使能。最高频率达12.5KHz。三种波形都是有一个简易小UI界面,电阻式触摸屏,能够完全手动控制通道的选择,波形的选择频率的选择以及各种波形的使能。/*使用手册:0.初学即兴所敲,不喜勿喷。1.通道1和通道2只能分开输出。2.只有选中响应的波形选择框,才能设置频率或者使能。3.使能端只能在通道1或者通道2打开的情况下才能被使

2、按下操作有效。4.每次使能一个波形,其他波形使能将自动关闭。5.当通道1和通道2都关闭,使能将自动无效。6.通道1和通道2切换,必须重新使能。7.开发平台为STM32战舰版。 USER:Zhang Changhao*/#include led.h#include delay.h#include key.h#include sys.h#include lcd.h#include usart.h #include 24cxx.h#include flash.h#include touch.h #include STM32_WaveOutput.h u8 t,Mode1,Mode2,Mode1_Fl

3、ag,Mode2_Flag;u8 sinewave_flag,sawtooth_flag,triangle_flag, sinewave_mode,sawtooth_mode,triangle_mode;u8 sinewave_en,sawtooth_en,triangle_en;u8 sinewave_fre,sawtooth_fre,triangle_fre;u8 output_wave;u16 output_fre;#define MODE1 1#define MODE2 2 #define sinewave 1#define sawtooth 2#define triangle 3vo

4、id wave_show(u8 wavemode);void en_show(u8 wavemode);void Mode_Show(u8 mode);void wave_fre(u8 wavemode);void judge_tongdao();void judge_wave();void judge_en();void judge_fre();void show_init();void fengbi_tongdao(); int main(void) delay_init(); /延时函数初始化 NVIC_Configuration(); /设置NVIC中断分组2:2位抢占优先级,2位响应

5、优先级 uart_init(9600); /串口初始化为9600 LED_Init(); /LED端口初始化 LCD_Init(); KEY_Init(); tp_dev.init(); show_init(); while(1) t=TP_Scan(0); if(t) t=0;/ printf(%d,%drn,tp_dev.x0,tp_dev.y0); judge_tongdao(); judge_wave(); judge_en(); judge_fre(); if(sinewave_en=1|sawtooth_en=1|triangle_en=1) if(Mode1_Flag!=DISA

6、BLE) if(sinewave_en) output_wave=sinewave; output_fre=sinewave_fre*100; else if(sawtooth_en) output_wave=sawtooth; output_fre=sawtooth_fre*100; else if(triangle_en) output_wave=triangle; output_fre=triangle_fre*100; printf(%d,%drn,output_wave,output_fre); Wave_Init(output_wave-1),output_fre,ENABLE,(

7、output_wave-1),output_fre,DISABLE);/ printf(%drn,TIM_TimeBaseStructure.TIM_Period);/ Set_WaveFre(0,output_fre); else if(Mode2_Flag!=DISABLE) if(sinewave_en) output_wave=sinewave; output_fre=sinewave_fre*100; else if(sawtooth_en) output_wave=sawtooth; output_fre=sawtooth_fre*100; else if(triangle_en)

8、 output_wave=triangle; output_fre=triangle_fre*100; Wave_Init(output_wave-1),output_fre,DISABLE,(output_wave-1),output_fre,ENABLE); printf(%d,%drn,output_wave,output_fre); else Wave_Init(0,1,DISABLE,0,1,DISABLE); /if(t) LED1=!LED1; delay_ms(100); void show_init() /清屏 LCD_Clear(CYAN); POINT_COLOR=BRO

9、WN;/设置字体为红色 LCD_Fill(0,0,2,320,BROWN); LCD_Fill(0,0,240,2,BROWN) ; LCD_Fill(0,318,240,320,BROWN); LCD_Fill(238,0,240,320,BROWN); LCD_Fill(7,7,9,313,BROWN); LCD_Fill(7,7,233,9,BROWN) ; LCD_Fill(7,311,233,313,BROWN); LCD_Fill(231,7,233,313,BROWN); LCD_DrawLine(0,0,7,7); LCD_DrawLine(233,313,240,320);

10、LCD_DrawLine(233,7,240,0); LCD_DrawLine(7,313,0,320); /通道1 2的初始化 POINT_COLOR=RED;/设置字体为红色 LCD_Fill(20,20,110,65,MAGENTA); LCD_ShowString(38,35,80,16,16,Output1); LCD_Fill(130,20,220,65,MAGENTA); LCD_ShowString(148,35,80,16,16,Output2); /正弦初始化 LCD_Fill(50,80,145,110,LIGHTGREEN) ; LCD_ShowString(67,88

11、,64,16,16,SineWave); LCD_Fill (155,80,200,110,RED) ; POINT_COLOR=GREEN; Draw_Circle(55,125,13); LCD_DrawLine(42,125,68,125); LCD_DrawLine(55,112,55,138); POINT_COLOR=BROWN; Draw_Circle(168,125,13); LCD_DrawLine(155,125,181,125) ; LCD_ShowString(72,120,80,16,16,Fre:0.0KHz); /锯齿初始化 POINT_COLOR=RED; LC

12、D_Fill(50,150,145,180,DARKBLUE); LCD_ShowString(67,158,64,16,16,SawTooth); LCD_Fill (155,150,200,180,RED) ; POINT_COLOR= GREEN; Draw_Circle(55,195,13); LCD_DrawLine(42,195,68,195); LCD_DrawLine(55,182,55,208); POINT_COLOR=BROWN; Draw_Circle(168,195,13); LCD_DrawLine(155,195,181,195); LCD_ShowString(

13、72,190,80,16,16,Fre:0.0KHz); /三角初始化 POINT_COLOR=RED; LCD_Fill(50,220,145,250,YELLOW) ; LCD_ShowString(63,228,64,16,16,triangle); LCD_Fill(155,220,200,250,RED) ; POINT_COLOR= GREEN; Draw_Circle(55,265,13); LCD_DrawLine(42,265,68,265); LCD_DrawLine(55,252,55,278); POINT_COLOR= BROWN; Draw_Circle(168,2

14、65,13); LCD_DrawLine(155,265,181,265); LCD_ShowString(72,260,80,16,16,Fre:0.0KHz); LED0=0; /张长浩 POINT_COLOR=DARKBLUE; LCD_ShowString(65,295,168,16,16,BY:Zhang Changhao_); POINT_COLOR= BROWN;void judge_tongdao() /通道1 2 的识别操作 if(tp_dev.x019)&(tp_dev.x019)&(tp_dev.y0129)&(tp_dev.x019)&(tp_dev.y049)&(tp

15、_dev.x079)&(tp_dev.y049)&(tp_dev.x0149)&(tp_dev.y049)&(tp_dev.x0219)&(tp_dev.y0154)&(tp_dev.x079)&(tp_dev.y0154)&(tp_dev.x0149)&(tp_dev.y0154)&(tp_dev.x0219)&(tp_dev.y0251) if(triangle_flag&(Mode1|Mode2) if(triangle_en) triangle_en=0; en_show(triangle); else triangle_en=1; if(sinewave_en) sinewave_e

16、n=0; en_show(sinewave) ; if(sawtooth_en) sawtooth_en=0; en_show(sawtooth) ; en_show(triangle); else triangle_en=0; en_show(triangle); /使能判断 if(triangle_en=0|sawtooth_en=0|sinewave_en=0) TIM_Cmd(TIM6, DISABLE); TIM_Cmd(TIM2, DISABLE); void judge_fre() / 频率检测 if(tp_dev.x0-55)*(tp_dev.x0-55)+(125-tp_dev.y0)*(125-tp_dev.y0)150) if(sinewave_flag

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1