@{
}
<!DOCTYPE html>
<html>
<head>

開發工具: STM32CubeMX 6.6.1 (使用這個建立Library)
開發環境: STM32CubeIDE
MCU型號: STM32F103VET6(內建FSMC LCD接口)
LCD型號: ILI9488 8-bit Parallel TFT LCD
LCD Driver library:ILI9341 Driver library for STM32

1.透過STM32CubeMX取得STemWin Library
開啟[STM32CubeMX] -> 點選右上方選項[Help] -> 選擇[Updater Setting]
取得Repository路徑
Libary存放於目錄下 "Repository\STM32Cube_FW_H7_V1.11.0\Middlewares\ST"
複製將STemWin資料夾到專案目錄下(同cubeIDE的cproject檔案的目錄)

讀取影像格式與轉換
var filePath = "D:\\test.png";
Image<Bgr, Byte> imgOri = new Image<Bgr, Byte>(filePath);
Image<Gray, byte> grayImg = imgOri.Convert<Gray, byte>();
Mat imgMat = CvInvoke.Imread(filePath);

影像讀取為Bgr格式
var filePath = "D:\\test\\test.png";
Image<Bgr, Byte> imgOri = new Image<Bgr, Byte>(filePath);
影像讀取為Mat格式

將web應用程式發佈到Azure App Server,開啟網站顯示錯誤訊息"錯誤。處理您的要求時發生錯誤。",經確認為存取權限問題。當在Azure建立SQL Server時,有將開發平台的ip設定為允許存取,所以在開發平台可以正常執行APP,當程式發佈到Azure App Server,因Azure SQL Server未將Azure App Server預設為安全規則,所以才會發生存取錯誤。
具體操作過程如下
讓錯誤訊息顯示在網站上,在程式內的web.config加入<customErrors mode="Off" />。
重新開啟網站顯示錯誤訊息為無法存取SQL Server
Cannot open server 'xxxxxxx' requested by the login. Client with IP address '40.74.253.179' is not allowed to access the server. To enable access, use the Windows Azure Management Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this IP address or address range. It may take up to five minutes for this change to take effect.

裝置的解析度≠顯示的範圍
顯示的範圍會因裝置上的狀態列、工具列等縮小顯示範圍,因此需妥善配置排版與增加顯示範圍。
下面是用來查看裝置與顯示範圍
<script>
// Get the size of the device screen

取得的ST7789少了一個CS Pin非Adafruit版本,使用Adafruit的Library無法正常操作。
線路連接
腳位設定
#define TFT_DC D1
#define TFT_RST D0 //RES

ESP32支援MicroPython, 將韌體燒寫進去ESP32, 就可在ESP32執行py程式.
ESP32燒寫套件 esptool
指令: pip3 install esptool
(在非虛擬環境下建立, 與切換的資料夾無關, 都會安裝在一開始python安裝的路徑下)
在原始python安裝目錄下的scripts資料夾, 會新增esptool.exe.

為什麼需要虛擬環境?
在開發專案時, 會使用很多套件, 若在同一環境下不斷新增套件, 整個專案會變成非常大, 那麼在開發小專案中, 就會多出很多使用不到的套件.
在同環境下開發無法避免這種情況, 因此需要建立一個虛擬環境, 也就是一個新的專案資料夾管理這個專案需要用到的套件.
安裝虛擬環境套件virtualenv
pip3 install --upgrade pip