完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
stm32f11111,完成以下的。
上电引导,后进进,在OLED上进行”的图片,让LED1与LED2013一起应用开发,然后逐步开发,然后根据系统进行检测。“检测后结束,OLED检测切换至数据显示界面,分3行:第1行显示:“day day up!“第 2 行传感器:“一次测量电压测量值:”第 3 行测量值:“值程序” 【2】在,采用的,每一次显示的光敏通道:0.3 秒 ADC_INO 的光敏测量通道进行数据显示,并将其测量到的 12 位数据转换计算值。LED1AD 测量值转换计算成的实际结果。【3】进行一次光敏传感器的数据测量和其电压转换计算。更新到如果LED灯显示相反中相应的 。 函数有: void OLED_Init(void);// 初始化void OLED_Clear(void);//清除上一次 void OLED_ShowChar(unsigned char x,unsigned char y,unsigned char chr);//显示内容可单独显示 void OLED_ShowNum(unsigned char x,unsigned char y,unsigned long num,unsigned char len,unsigned char size);//显示数字 void OLED_ShowString(unsigned char x,unsigned char y, unsigned char *p); //显示字符串 void OLED_Set_Pos(unsigned char x, unsigned char y);//设置显示 void OLED_ShowCHinese(unsigned char x,unsigned char y,unsigned char no);// void OLED_DrawBMP(unsigned char x0, unsigned char no) char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);//图片 汉字和图片的图形需要使用到字模转换软件,推荐“PCtoLCD2002”在“显示 模式”里选择转换还是汉字 A51是将生成的 修改组合的修改,并移植到格式上。将在格式/格式上包含“16个图片 进行编号M_OLED_MP.XMF_OLED_相应存储时”。 .h"//汉字两个头文件里主要函数代码展示如下: #include "main.h" #include "adc.h" #include "gpio.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "stdio.h" #include "XMF_OLED_STM32Cube.h" /* USER CODE END Includes */ /* USER CODE BEGIN PTD */ #define LED1_ON HAL_GPIO_WritePin(GPIOD,GPIO_PIN_3,GPIO_PIN_SET); #define LED1_OFF HAL_GPIO_WritePin(GPIOD,GPIO_PIN_3,GPIO_PIN_RESET); #define LED2_ON HAL_GPIO_WritePin(GPIOD,GPIO_PIN_4,GPIO_PIN_SET); #define LED2_OFF HAL_GPIO_WritePin(GPIOD,GPIO_PIN_4,GPIO_PIN_RESET); extern unsigned char BMP1[]; uint16_t ADC_Value,ADC_Volt; uint8_t str_buff[64]; /* USER CODE END PTD */ /* USER CODE BEGIN PFP */ void LED_Check()//开机闪烁 { LED1_ON; HAL_Delay(500); LED1_OFF; HAL_Delay(500); LED2_ON; HAL_Delay(500); LED2_OFF; HAL_Delay(500); } void OLED_display_pic()//显示图片 { OLED_Clear(); OLED_DrawBMP(0,0,128,8,BMP1);//3,4参数设置显示大小 } void OLED_display_info()//显示第二页信息 { OLED_Clear(); OLED_ShowString(6,0,(uint8_t *)"day day up!"); OLED_ShowCHinese(0,3,0);//第三个参数对应"XMF_OLED_Font.h"头文件里16进制汉字顺序 OLED_ShowCHinese(18,3,1);//每个汉字占16比特,这里为了美观给18 OLED_ShowCHinese(36,3,2); OLED_ShowString(54,3,(uint8_t *)":"); OLED_ShowCHinese(0,6,3); OLED_ShowCHinese(18,6,4); OLED_ShowCHinese(36,6,2); OLED_ShowString(54,6,(uint8_t *)":"); } void OLED_display_dat()//数据显示 { sprintf((char *)str_buff,"%d",ADC_Value); OLED_ShowString(64,3,str_buff); sprintf((char *)str_buff,"%d.%d%dv",ADC_Volt/100,(ADC_Volt%100)/10,ADC_Volt%10); OLED_ShowString(64,6,str_buff); } void Get_ADC_Value()//获取ADC采样值计算电压值 { HAL_ADC_Start(&hadc1); if(HAL_ADC_PollForConversion(&hadc1,10) == HAL_OK) { ADC_Value=HAL_ADC_GetValue(&hadc1); ADC_Volt=ADC_Value*330/4096;//单位式10mv OLED_display_dat(); } if(ADC_Volt < 130)//任务③ { LED2_ON; } else LED2_OFF; } /* USER CODE END PFP */ int main(void) { /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_ADC1_Init(); /* USER CODE BEGIN 2 */ OLED_Init(); OLED_display_pic(); LED_Check(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ LED1_ON; Get_ADC_Value(); LED1_OFF; HAL_Delay(300); /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } |
|
|
|
只有小组成员才能发言,加入小组>>
3314 浏览 9 评论
2995 浏览 16 评论
3494 浏览 1 评论
9059 浏览 16 评论
4088 浏览 18 评论
1178浏览 3评论
605浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
599浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2335浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1896浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 05:21 , Processed in 1.189867 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号