2012|2

1509

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

基于GD32F450的图标式多功能应用系统设计(3) [复制链接]

接续上一贴
波形绘制函数如下:
  1. if(i==3)
  2. {
  3.         LCD_Clear(WHITE);
  4.     sp=95;
  5.         POINT_COLOR=RED;
  6.         LCD_DrawLine(10, 304, 230, 304);
  7.         LCD_DrawLine(125, 10, 125, 304);  
  8.         POINT_COLOR=BLUE;
  9.     for ( i = 0 ; i < 64; i++)
  10.         {
  11.                         sj=values[i][0];  
  12.                         sj<<=8;
  13.                         sj|=values[i][1];
  14.                         sj=sj/20;
  15.                         LCD_DrawLine(220-sp, 300-4*(i-1), 220-sj, 300-4*(i));
  16.                         sp=sj;
  17.         }
  18.         delay_1ms(1000);
  19.         LCD_Clear(WHITE);
  20.         rcu_config();
  21.     /* GPIO configuration */
  22.     gpio_config();
  23.     /* SYSTICK configuration */
  24.     systick_config();
  25.     /* ADC configuration */
  26.     adc_config();
  27.         adc_resolution_config(ADC1,ADC_RESOLUTION_12B);
  28. adc_oversample_mode_config(ADC1,ADC_OVERSAMPLING_ALL_CONVERT,ADC_OVERSAMPLING_SHIFT_NONE,ADC_OVERSAMPLING_SHIFT_NONE);
  29.     adc_oversample_mode_disable(ADC1);
  30.     while(SET == gpio_input_bit_get(GPIOA,GPIO_PIN_0))
  31.         {
  32.                 LCD_Clear(WHITE);
  33.                     sp=95;
  34.                     POINT_COLOR=RED;
  35.                     LCD_DrawLine(10, 304, 230, 304);
  36.                     LCD_DrawLine(125, 10, 125, 304);  
  37.                     POINT_COLOR=BLUE;       
  38.             for ( i = 0 ; i < 64; i++)
  39.                     {
  40.                           adc_enable(ADC1);
  41.               adc_software_trigger_enable(ADC1,ADC_REGULAR_CHANNEL);
  42.                           while(RESET == adc_flag_get(ADC1,ADC_FLAG_EOC));
  43.                           sj=ADC_RDATA(ADC1);       
  44.                           sj=sj/10;
  45.                           LCD_DrawLine(320-sp, 300-4*(i-1), 320-sj, 300-4*(i));
  46.                           sp=sj;
  47.                           delay_1ms(20);
  48.             }
  49.                  }
  50.                 goto loop;
  51. }
复制代码


环境温湿度检测的程序如下:
  1. if(i==4)
  2. {
  3.                 i=0;
  4.                 LCD_Clear(WHITE);
  5.                 show_imageh(10,300,0);        
  6.                 POINT_COLOR=RED;
  7.                 BACK_COLOR=WHITE;      
  8.                 DHT11_Init();
  9.                 while(SET == gpio_input_bit_get(GPIOA,GPIO_PIN_0))
  10.                 {
  11.             DHT11_Read_Data(&temp,&humi);
  12.                 LCD_ShowCharh(100,100,'T',1);
  13.                 LCD_ShowCharh(100,90,'e',1);
  14.                 LCD_ShowCharh(100,80,'m',1);
  15.                 LCD_ShowCharh(100,70,'p',1);
  16.                 LCD_ShowCharh(100,60,':',1);
  17.                 LCD_ShowCharh(100,50,temp/10+'0',0);
  18.                 LCD_ShowCharh(100,40,temp%10+'0',0);
  19.                 LCD_ShowCharh(120,100,'H',1);
  20.                 LCD_ShowCharh(120,90,'u',1);
  21.                 LCD_ShowCharh(120,80,'m',1);
  22.                 LCD_ShowCharh(120,70,'i',1);
  23.                 LCD_ShowCharh(120,60,':',1);
  24.                 LCD_ShowCharh(120,50,humi/10+'0',0);
  25.                 LCD_ShowCharh(120,40,humi%10+'0',0);
  26.                 delay_1ms(200);
  27.           }
  28.                 while(SET == gpio_input_bit_get(GPIOA,GPIO_PIN_0));
  29.                 goto loop;
  30.         }
复制代码


多时段设置处理的程序如下:
  1. if(i==6)
  2. {
  3.                 LCD_Clear(WHITE);      
  4.             show_imageh(10,300,0);        
  5.                 showhanzi16h(60,80,0,0);
  6.                 showhanzi16h(60,60,1,0);
  7.                 showhanzi16h(60,40,2,0);
  8.                 rtc_show_time();
  9.                 timer_channel_output_pulse_value_config(TIMER1,TIMER_CH_1,0);
  10.                 GPIO_BC(GPIOB) = GPIO_PIN_3;   
  11.                 GPIO_BC(GPIOB) = GPIO_PIN_4;
  12.                 GPIO_BC(GPIOD) = GPIO_PIN_7;
  13.         t=rtc_initpara.minute;       
  14.                 LCD_ShowCharh(100,50,t/16+'0',0);
  15.                 LCD_ShowCharh(100,40,t%16+'0',0);
  16.                 LCD_ShowCharh(100,20,'S',0);
  17.                 LCD_ShowCharh(100,10,'T',0);
  18.                 LCD_ShowCharh(140,50,(t+1)/16+'0',0);
  19.                 LCD_ShowCharh(140,40,(t+1)%16+'0',0);       
  20.         LCD_ShowCharh(160,50,(t+2)/16+'0',0);
  21.                 LCD_ShowCharh(160,40,(t+2)%16+'0',0);       
  22.         LCD_ShowCharh(180,50,(t+3)/16+'0',0);
  23.                 LCD_ShowCharh(180,40,(t+3)%16+'0',0);                               
  24.                 c1=0;
  25.                 c2=0;
  26.                 c3=0;
  27.                 c4=0;
  28.         while(SET == gpio_input_bit_get(GPIOA,GPIO_PIN_0))
  29. {
  30.                 rtc_show_time();
  31.                 i=rtc_initpara.minute;
  32.                 if((i==(t+0x01))&&(c1==0))
  33.                 {                       
  34.                 GPIO_BOP(GPIOB) = GPIO_PIN_4;
  35.                 LCD_ShowCharh(140,20,'O',0);
  36.                 LCD_ShowCharh(140,10,'N',0);
  37.         c1=1;                       
  38.                 playn(1);
  39.                 for ( i = 0 ; i < 10; i++)
  40.                 {
  41.             usart_data_transmit(USART1, cmd3[i]);//  play  ok
  42.                 delay_1ms(10);
  43.                 }       

  44.                 }
  45.                 if((i==(t+0x02))&&(c2==0))
  46.                 {
  47.                 timer_channel_output_pulse_value_config(TIMER1,TIMER_CH_1,8000);
  48.                 LCD_ShowCharh(160,20,'O',0);
  49.                 LCD_ShowCharh(160,10,'N',0);       
  50.                 c2=1;
  51.                 playn(2);
  52.                 for ( i = 0 ; i < 10; i++)
  53.                 {
  54.             usart_data_transmit(USART1, cmd3[i]);
  55.                 delay_1ms(10);
  56.                 }
  57.                 }
  58.                 if((i==(t+0x03)) &&(c3==0))
  59.                 {
  60.                 GPIO_BOP(GPIOD) = GPIO_PIN_7;
  61.                 LCD_ShowCharh(180,20,'O',0);
  62.                 LCD_ShowCharh(180,10,'N',0);       
  63.                 c3=1;
  64.                 playn(3);
  65.                 for ( i = 0 ; i < 10; i++)
  66.                 {
  67.             usart_data_transmit(USART1, cmd3[i]);
  68.                 delay_1ms(10);
  69.                 }
  70.                 }
  71.                        
  72.                 if((i==(t+0x04))&&(c4==0))
  73.         {
  74.                           GPIO_BC(GPIOB) = GPIO_PIN_4;
  75.                           timer_channel_output_pulse_value_config(TIMER1,TIMER_CH_1,0);
  76.                       GPIO_BC(GPIOD) = GPIO_PIN_7;
  77.                           LCD_ShowCharh(140,20,'O',0);
  78.                       LCD_ShowCharh(140,10,'F',0);
  79.                           LCD_ShowCharh(160,20,'O',0);
  80.                       LCD_ShowCharh(160,10,'F',0);
  81.                           LCD_ShowCharh(180,20,'O',0);
  82.                       LCD_ShowCharh(180,10,'F',0);
  83.                           c4=1;
  84.                 }
  85.                
  86.                 }
  87.                 goto loop;
  88.         }
复制代码


未完待续。。。


此内容由EEWORLD论坛网友jinglixixi原创,如需转载或用于商业用途需征得作者同意并注明出处


此帖出自stm32/stm8论坛

最新回复

加油 加油    详情 回复 发表于 2017-8-15 10:37
点赞 关注
 

回复
举报

2万

帖子

71

TA的资源

管理员

沙发
 
加油 加油  
此帖出自stm32/stm8论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

感谢您的鼓励!!!  详情 回复 发表于 2017-8-16 10:30
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 

回复

1509

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 

感谢您的鼓励!!!
此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表