<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      文件I/O第三天練習

      練習:設計程序,實現在開發板的LCD 屏幕顯示三種顏色,拓展:在開發板的LCD 上畫一個圓

      #include <stdio.h>
      #include <stdlib.h>
      #include <fcntl.h>
      #include <unistd.h>
      
      int main() {
          // 1. 打開LCD設備文件
          int lcd_fd = open("/dev/fb0", O_RDWR);  // 修正設備路徑為/dev/fb0
          if (-1 == lcd_fd) {
              perror("open lcd error");  // 使用perror輸出更詳細的錯誤信息
              exit(1);
          }
      
          // 2. 準備顏色數據并寫入LCD
          int colorbuf[800*480] = {0};  // 800x480分辨率,每個像素4字節
          
          // 分段填充顏色
          int i = 0;
          for (; i < 800*160; ++i) {    // 頂部160行黑色
              colorbuf[i] = 0x00000000; 
          }
          for (; i < 800*320; ++i) {    // 中間160行紅色
              colorbuf[i] = 0x00FF0000; 
          }
          for (; i < 800*480; ++i) {    // 底部160行黃色
              colorbuf[i] = 0x00FFFF00; 
          }
      
          // 寫入LCD設備
          ssize_t ret = write(lcd_fd, colorbuf, 800*480*4);
          if (ret == -1) {
              perror("write to LCD failed");
              close(lcd_fd);
              exit(1);
          }
      
          // 3. 關閉LCD設備
          close(lcd_fd);
          return 0;
      }
      

      在開發板的LCD 上畫一個圓

      #include <stdio.h>
      #include <fcntl.h>
      #include <unistd.h>
      #include <sys/mman.h>
      #include <stdlib.h>
      
      #define WIDTH  800   // 屏幕寬度
      #define HEIGHT 480   // 屏幕高度
      #define CENTER_X 400 // 圓心X坐標
      #define CENTER_Y 240 // 圓心Y坐標
      #define RADIUS   10  // 圓半徑
      
      int main() {
          // 1. 打開FrameBuffer設備
          int fb_fd = open("/dev/fb0", O_RDWR);
          if (fb_fd == -1) {
              perror("Failed to open framebuffer");
              return 1;
          }
      
          // 2. 映射幀緩沖內存
          unsigned int *fb_map = mmap(NULL, WIDTH*HEIGHT*4, PROT_READ | PROT_WRITE, MAP_SHARED, fb_fd, 0);
          if (fb_map == MAP_FAILED) {
              perror("Failed to mmap framebuffer");
              close(fb_fd);
              return 1;
          }
      
          // 3. 繪制圓形(紅色)
          for (int y = CENTER_Y - RADIUS; y <= CENTER_Y + RADIUS; y++) {
              for (int x = CENTER_X - RADIUS; x <= CENTER_X + RADIUS; x++) {
                  // 檢查像素是否在圓內(圓方程:(x-a)2 + (y-b)2 ≤ r2)
                  if ((x - CENTER_X)*(x - CENTER_X) + (y - CENTER_Y)*(y - CENTER_Y) <= RADIUS*RADIUS) {
                      // 確保坐標在屏幕范圍內
                      if (x >= 0 && x < WIDTH && y >= 0 && y < HEIGHT) {
                          fb_map[y * WIDTH + x] = 0x00FF0000; // ARGB格式的紅色
                      }
                  }
              }
          }
      
          // 4. 解除映射并關閉設備
          munmap(fb_map, WIDTH*HEIGHT*4);
          close(fb_fd);
      
          return 0;
      }
      

      練習:設計程序,利用ioctl 函數獲取LCD 的硬件參數,把LCD 屏幕的寬和高以及色深的位數輸出到屏幕,下載程序到開發板并進行驗證。提示:必須包含該頭文件<linux/fb.h> !!!!

      #include <sys/ioctl.h>
      #include <sys/types.h>
      #include <sys/stat.h>
      #include <fcntl.h>
      #include <stdio.h>
      #include <linux/fb.h>
      
      int main(int argc, char const *argv[])
      {
          //1.打開LCD
          int lcd_fd = open("/dev/fbb",0_RDWR);
      
          //2.利用ioctl函數獲取LCD硬件參數
          struct fb_var_screeninfo lcd_vinfo;
          ioctl(lcd_fd,FBIOGET_VSCREENINFO,&led_vinfo);
      
          //3.輸出LCD的寬、高
          printf("led_height = %d\n", lcd_vinfo.vres); //480
          printf("led width = %d\n", lcd_vinfo.xres); //800
      
          return 0;
      }
      
      posted @ 2025-07-26 08:57  九思0404  閱讀(8)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲成在人线AⅤ中文字幕| 国产亚洲精品午夜福利| 白嫩少妇激情无码| 少妇做爰免费视看片| 亚洲国产欧美日韩另类| 国产精品成人综合色在线| 亚洲AV无码国产在丝袜APP| 狠狠色噜噜狠狠狠狠777米奇| 成av免费大片黄在线观看| 自拍偷区亚洲综合第二区| 免费看男女做好爽好硬视频| 中国熟女仑乱hd| 亚洲深深色噜噜狠狠网站| 国产免费午夜福利757| 性猛交ⅹxxx富婆视频| 丝袜美腿亚洲综合第一页| 亚洲精品无码久久一线| 亚洲 a v无 码免 费 成 人 a v| 四虎成人在线观看免费| 黄色国产精品一区二区三区| 波多野结衣一区二区免费视频| 99久久国产成人免费网站| 国产美女69视频免费观看| 欧美老熟妇乱子伦牲交视频| 镇赉县| 人妻av资源先锋影音av资源| 国产精品视频一区不卡| 国产毛片欧美毛片久久久| 风韵丰满熟妇啪啪区老熟熟女| 国产亚洲av产精品亚洲| chinese极品人妻videos| 丁香五月婷激情综合第九色| 天天爽天天摸天天碰| 丰满人妻跪趴高撅肥臀| 亚洲欧洲日韩国内高清| 免费无码va一区二区三区| 99精品伊人久久久大香线蕉| 国产av国片精品一区二区| 免费看视频的网站| 亚洲色无码播放亚洲成av| 一出一进一爽一粗一大视频|