2017年9月5日 星期二

C/C++ 編譯時如何更換圖示 gcc 與 Visual Studio

C/C++ 編譯時如何更換圖示 gcc 與 Visual Studio

Visual Studio

這個比較簡單只要直接加入資源即可
這裡要注意如果是ico選ico才看的到
然後依據你的編譯模式 x86/x64 和 debug/release 找到相應的檔案,或者你退到最外面直接在右上角搜索 *.exe 也可以,就可以看到圖示了。

gcc

這個比較複雜一點,寫了一個程序可以製作檔案,直接下載使用即可。

產生資源檔

先把你的圖示ico與下載的檔案create_resource_release放在一起,然後直接拉進去就可以產生了。
或者用命令
create_resource_release.exe CHG.ico
你可以一次拉多個檔案進去
即可產生 CHG_icon.o
在來編譯的時候只要加入他即可,例如我編譯一個cpp sou.cpp 下這樣的命令
g++ CHG_icon.o sou.cpp -o sou.exe
產生出來的檔案就有圖示了

2017年9月4日 星期一

9/4日 英雄聯盟 LOL 更新後錯誤 開不起來 無限修復

英雄聯盟 LOL 更新後錯誤 invalid parameter. 0x800000a

22:00已經可以更新了~更新後就好了
今天更新完忽然出現問題,爬一下有幾種狀況
  • 0x800000a
  • 0x800000b
  • 直接開不起來提示修復
  • 還有一種沒關遊戲的,不要離開遊戲還能玩
我的是第三種的直接開不起來提示錯誤要我修復,前兩種錯誤試試看或許可以。
我是修復完畢還是一樣不能開提示修復,然後重新指定安裝位置才成功開上去。
就先修復一次,然後重新指定位置,指定位置按下去之後位置就是對的了,直接按右下選擇資料夾即可。
圖中 .gpipe 不小心選到的,不用點他不然會變成選那個資料夾,進去 LolTW 之後什麼都不要選直接按選擇,或者在上一層選擇 LolTW

方法二

巴哈看到有人關閉GGC,然後對著捷徑按右鍵管理員開啟就好了。
搜尋這裡可以按右鍵有管理員

方法三

我的另一台電腦舊版的ggc直接更新就可以玩了
舊版的安裝檔案在LOL的路徑上有一份,如果沒有可以從這裡下載
舊版的路徑要從這裡設定,直接開啟這個檔案
出現錯誤的話就是缺少下面那個xml檔案,在temp裡面拉出來改名消除backup改成一樣檔名就好了

2017年8月25日 星期五

新版的gitbook怎麼使用markdown編輯、切割編輯室窗

新版的gitbook怎麼使用markdown編輯、切割編輯室窗

乾~在右下角的問號裡拉,長這麼小真的很難找QuQ

2017年8月24日 星期四

STM32F469I GPIO 基本的按鈕與LED控制 彙總整理

STM32F469I GPIO 基本的按鈕與LED控制 彙總整理

前面兩篇介紹
  1. STM32F469I GPIO 基本的閃爍控制
  2. STM32F469I GPIO 基本的按鈕控制
這篇彙整一下順變仿照官方的函式打造了D0~D15的使用模式
整串貼進去官方GPIO範例程序內的 main 之上即可。

使用方式範例

D15 沒有接地時 D2 D3 亮起
下面貼在 main 內
  BSP_LED_Init(LED1);
  BSP_LED_Init(LED2);
  BSP_LED_Init(LED3);
  BSP_LED_Init(LED4);
  // 初始化 ArD 腳位為 OUT
  Ard_LED_Init(ArD2);
  Ard_LED_Init(ArD3);
  // 初始化 ArD 腳位為 IN
  Ard_PB_Init(ArD15);

  while(1)
  {
    /* 按鈕 */
    if(Ard_PB_GetState(ArD15) == PB_RESET)
    {
      /* 按住 */
      Ard_LED_On(ArD2);
      Ard_LED_On(ArD3);
    }
    else if(Ard_PB_GetState(ArD15) == PB_SET)
    {
      /* 放開 */
      Ard_LED_Off(ArD2);
      Ard_LED_Off(ArD3); 
    }
  }

STM32F469I GPIO 基本的按鈕控制

STM32F469I GPIO 基本的按鈕控制

腳位的部分或LED控制可以參考上一篇
https://charlottehong.blogspot.tw/2017/07/stm32f469i-gpio.html

按鈕初始化

/* UserDefine functions ------------------------------------------------------*/
void User_LED_Init()
{
  // 設定角位(3行都要改)
  uint16_t pin       = GPIO_PIN_4;
  GPIO_TypeDef* port = GPIOB;
  __HAL_RCC_GPIOB_CLK_ENABLE();

  // 初始化
  GPIO_InitTypeDef  GPIO_InitStruct;
  GPIO_InitStruct.Pin = pin;                  // 腳位數字
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 設置為輸出
  GPIO_InitStruct.Pull = GPIO_PULLUP;         // 下拉電阻
  GPIO_InitStruct.Speed = GPIO_SPEED_FAST;    // 速度
  HAL_GPIO_Init(port, &GPIO_InitStruct);

  // 設定起始狀態
  HAL_GPIO_WritePin(port, pin, GPIO_PIN_RESET);
}
與前一章節一樣需要設置 Set port and pin 內的參數三行,這裡設置的事 PB8 也就是 Arduino腳位的 D15 的腳位置。

偵測按鈕

這個直接在放主程式main的 while 回圈內就可以
D15放空或接5V會讓D2 D3亮,D15接地則滅。
if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8) == PB_RESET)
{
  /* 接地 */
  HAL_GPIO_WritePin(ArD2_GPIO_PORT, ArD2_PIN, GPIO_PIN_SET);
  HAL_GPIO_WritePin(ArD3_GPIO_PORT, ArD3_PIN, GPIO_PIN_SET);
}
else if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8) == PB_SET)
{
  /* 放開 */
  HAL_GPIO_WritePin(ArD2_GPIO_PORT, ArD2_PIN, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(ArD3_GPIO_PORT, ArD3_PIN, GPIO_PIN_RESET);  
}

2017年8月22日 星期二

OpenCV Mat 導入一為陣列的灰階圖陣列

OpenCV Mat 導入一為陣列的灰階圖陣列

Mat 可以直接讀取圖片
Mat img = imread("img.png");
一般常見格式都能讀取,直接打上完整的檔名就好
如果是已經存到一維的vector陣列內要轉進去可以這樣做
Mat img(1000, 1334, 0); // 圖的寬長
img.data = raw_img.data(); // 指標會指向同一個地方,自己在依狀況處理。

imshow("Image", img);
cvWaitKey(0);

如何存取像素

// 讀圖
IplImage* img01;
img01 = cvLoadImage("kanna.png", 1);

// 讀圖 Mat
Mat kanna = imread("kanna.png");
kanna.at<Vec3b>(30, 20)[0] = 255;
後面的1去找函式有說明,1是彩圖0是灰階圖

2017年8月21日 星期一