咱們的開源宗旨:自由 協調 開放 合做 共享git
擁抱開源,豐富國內開源生態,開展多人運動,歡迎加入咱們哈~github
和一羣志同道合的人,作本身所熱愛的事!數組
項目開源地址:https://github.com/Cai-Zi/STM32_RC_Transmitteride
Bilibili帳號:蔡子CaiZi函數
以前用Arduino Pro Mini製做了一個航模遙控器+接收機,不得不說Arduino開發起來很是方便,可是博主用的開發板比較廉價,芯片資源較少,只能實現基礎功能,遙控性能也不能使人滿意。咱們的經費又不夠來買大幾百的UNO,怎麼辦?我找到了同價位的STM32F103C8T6開發板,十元包郵解君愁!這個小板子於咱們遙控器而言,資源足夠用了,別人甚至拿它來玩平衡車、四旋翼、智能家居,足見其強大!學習
其一,咱們本身DIY的遙控器,固然要用我國之重器-J20來命名!相信若是當年LUOLI大佬開發遙控器時,咱們祖國的J20面世了,他也會用J20來命名本身的遙控器,而不是SU27,每一個人都有本身的民族自豪感,我也同樣!測試
其二,J20的總設計師-楊偉院士,是個人學長!招生宣傳一波哈哈哈哈哈哈,歡迎報考西北工業大學!(招生辦是否是該打錢了)咱們學校真是過低調了,當年報考前我壓根沒據說過西工大,宣傳力度要增強啊。ui
其三,今年是2020年,就說應景不該景!J20中的數字也象徵着咱們的開發時間,獨特的年份,用來命名咱們的遙控器剛恰好~spa
博主也是邊學邊作,而且是利用業餘時間(導師:論文看累了,就敲點代碼放鬆一下),實際上很耗費時間和精力啊!把學習過程記錄下來,一是方便加深本身的理解,二是但願能幫到別人叭,三是提供給DIY玩家本身改造的空間,一千我的心中有一千個哈姆雷特,每一個人都有本身的想法,授人以魚不如授人以漁,教程能夠幫助讀者完成本身的個性化設計,好比設計開機界面、添加修改功能。
項目徹底開源,還附帶教程,怎麼樣?上車吧!
開始正文
前天,北斗三號最後一顆全球組網衛星發射成功,實現全球組網。不得不說咱們祖國愈來愈強大了,咱們本身也要更努力才行啊,如今咱們總被漂亮國卡脖子,可是莫欺少年窮!咱們每一個人都爲祖國建設添磚加瓦,早晚祖國會實現偉大復興!
北斗系統建設採用「三步走」戰略-【從無到有-服務亞太-全球組網】,那麼咱們的遙控器也分三步走,先完成基礎版,實現遙控器的基礎功能,再進行升級,添加屏幕界面交互,最後添加更高級人性化的功能。先會爬 再會走路 最後學會奔跑,這樣看,萬物是否是都相通的?
侃了這麼多,來開工吧,萬事開頭難,咱們先作一個帥氣的J20開機界面!
找一張J20圖片,用2345看圖王修改圖片尺寸128像素*64像素(或者比這個範圍小一點),由於咱們的OLED顯示屏只有128*64個像素點,這一步也能夠和第二步一塊兒用程序實現。
所謂圖像二值化,就是將彩色圖片變成黑白的,咱們的顯示屏單個像素只有亮/暗兩種狀態,對應1/0二值。能夠用MATLAB/Python/Photoshop等來處理成黑白的,這裏我用的是MATLAB,圖片和m文件放在同一文件夾,代碼以下:
1 close all 2 clear all 3 clc 4 %% 5 A=imread('j20.jpg');% 輸入圖片 6 n = graythresh(A); 7 % D=imbinarize(A,n); 8 D=im2bw(A,n); 9 % figure; 10 % imshow(D); 11 imwrite(D,'j20.bmp');% 輸出圖片 12 e=imread('j20.bmp'); 13 [m,n] = size(e); 14 img = zeros(m,n); 15 fd=[m,n,3];%設置空白圖片矩陣 16 f=uint8 (round (fd*255)); %轉換爲RGB值 17 bg=255;%灰色背景51 18 for i=1:1:m 19 for j=1:1:n 20 if (e(i,j)<=200) 21 f(i,j,1)=91; 22 f(i,j,2)=155; 23 f(i,j,3)=213; 24 else 25 f(i,j,1)=255; 26 f(i,j,2)=255; 27 f(i,j,3)=255; 28 end 29 end 30 end 31 % figure; 32 % imshow(f); 33 % sa=imcrop(f,[0,0,140,140]);%裁剪[左上角起始位置x,y,裁剪寬,高] 34 % imwrite(f,'j20.png');
生成j20.bmp後,有一些不滿意的地方,接下來咱們拿PS來修一下。
花費一點時間, 把邊邊角角清理乾淨,把線條補充上,再加個J-20文字,最後保存成bmp文件。
打開剛纔修好的bmp圖片,按以下四步操做,保存數組。若是發現顯示不對,能夠嘗試改變圖中設置,若是你不想搞懂OLED顯示原理,那麼一個一個試就能夠了。掃描模式(4種選項)和6個選項欄(勾選/不勾選),最多4*2^6=256次,我比較幸運,只試了10次。
奉上我作好的兩個數組,建議給咱們的UI設計師加雞腿!最後一張太好看了叭!
1 unsigned char J20logo[] = 2 { 3 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 4 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 5 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X7F,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF, 6 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 7 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 8 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 9 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 10 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 11 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 12 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3F,0XBF,0XBF,0XBF,0XBF,0XBF,0X83, 13 0XE7,0XCF,0XDF,0XDF,0XCF,0XE7,0XF3,0XF9,0XFC,0XFE,0X00,0XFF,0XFF,0XFF,0XFF,0XFF, 14 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X0F,0X7F,0X7F,0XFF,0X0F,0X5F,0X0F,0XFF, 15 0X8F,0XAF,0X0F,0XFF,0X0F,0XFF,0X0F,0X6F,0X0F,0XFF,0XFF,0XFF,0XFF,0X0F,0X6F,0X6F, 16 0XFF,0X0F,0X6F,0X0F,0XFF,0X0F,0X7F,0X0F,0XFF,0X7F,0X0F,0X7F,0XFF,0X0F,0X7F,0X7F, 17 0XFF,0X0F,0X6F,0X0F,0XFF,0X0F,0XEF,0XFF,0X0F,0XEF,0XFF,0X0F,0X6F,0X2F,0XFF,0X0F, 18 0X7F,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 19 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 20 0XFF,0XFF,0XFF,0X0F,0X0F,0X0F,0X0F,0X0F,0X0F,0X00,0X1F,0X3F,0X7F,0XFF,0XFF,0XFF, 21 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0XFF,0XFF,0XFF,0XFF,0XFF, 22 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0XF3,0XF1,0XF1,0XF1,0XF1,0XF1,0XF1,0XF1,0XF1, 23 0X01,0X01,0X01,0X01,0X01,0X01,0X01,0XFF,0XF1,0XE1,0XC1,0X81,0X01,0X01,0X01,0X01, 24 0X01,0X11,0X31,0X71,0XF1,0XF1,0XF1,0XF1,0XF1,0XF1,0XF1,0XF3,0XF7,0XFF,0X01,0X01, 25 0X01,0X01,0X01,0X01,0X31,0X71,0XF1,0XF1,0XF1,0XF1,0XF1,0XF1,0X01,0X01,0X01,0X03, 26 0X07,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 27 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFD, 28 0XF9,0X71,0X21,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X03, 29 0X07,0X0F,0X1F,0X3F,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0XE3,0XCF,0X1F,0X7F,0XFF, 30 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 31 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFC,0XF8, 32 0XF0,0XE0,0XC0,0X80,0X00,0X01,0X03,0X07,0X0F,0X1F,0X3F,0X7F,0XFF,0XFF,0X00,0X00, 33 0X00,0X00,0X00,0X00,0XFC,0XF8,0XF0,0XE1,0XC3,0X87,0X0F,0X1F,0X00,0X00,0X00,0X00, 34 0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 35 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XEF,0XE7,0XE3,0XE1, 36 0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0, 37 0XC0,0X80,0X00,0X00,0X00,0X00,0X01,0X03,0X07,0X0F,0X1F,0X3F,0X7F,0XFF,0XFE,0XF8, 38 0XF3,0XC7,0XDF,0XCF,0XE7,0XF3,0X01,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 39 0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XFF,0XFF,0XE3,0XE3,0XE3,0XE3,0XE3,0XE3,0XE3, 40 0XE3,0XE3,0XE3,0XE3,0XE3,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XE0,0XFF,0XFF,0XE0,0XE0, 41 0XE0,0XE0,0XE0,0XE0,0XE3,0XE3,0XE3,0XE3,0XE3,0XE3,0XE3,0XE2,0XE0,0XE0,0XE0,0XE0, 42 0XE0,0XE0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 43 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 44 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 45 0XFF,0XFF,0XFF,0XFF,0XFE,0XFC,0XFC,0XF8,0X70,0X30,0X00,0X00,0X00,0X00,0X01,0X03, 46 0X07,0X0F,0X1F,0X3F,0X7F,0XFF,0XE0,0X8F,0X3F,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 47 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 48 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 49 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 50 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 51 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 52 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 53 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFD,0XFC,0XFC,0XFC,0XFC,0XFC,0XFC,0XFC,0XFC,0XFC, 54 0XFC,0XFC,0XFC,0XF8,0XF0,0XF0,0XE1,0XC3,0XC7,0X8C,0X99,0X23,0X0F,0X1F,0X7F,0XFF, 55 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 56 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 57 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 58 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 59 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 60 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 61 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 62 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFE,0XFC,0XF8, 63 0XFB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 64 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 65 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 66 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, 67 }; 68 69 unsigned char J20logoR[]= 70 { 71 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 72 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 73 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0XC0,0X00,0X00,0X00,0X00,0X00, 74 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 75 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 76 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 77 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 78 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 79 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 80 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC0,0X40,0X40,0X40,0X40,0X40,0X7C, 81 0X18,0X30,0X20,0X20,0X30,0X18,0X0C,0X06,0X03,0X01,0XFF,0X00,0X00,0X00,0X00,0X00, 82 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XF0,0X80,0X80,0X00,0XF0,0XA0,0XF0,0X00, 83 0X70,0X50,0XF0,0X00,0XF0,0X00,0XF0,0X90,0XF0,0X00,0X00,0X00,0X00,0XF0,0X90,0X90, 84 0X00,0XF0,0X90,0XF0,0X00,0XF0,0X80,0XF0,0X00,0X80,0XF0,0X80,0X00,0XF0,0X80,0X80, 85 0X00,0XF0,0X90,0XF0,0X00,0XF0,0X10,0X00,0XF0,0X10,0X00,0XF0,0X90,0XD0,0X00,0XF0, 86 0X80,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 87 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 88 0X00,0X00,0X00,0XF0,0XF0,0XF0,0XF0,0XF0,0XF0,0XFF,0XE0,0XC0,0X80,0X00,0X00,0X00, 89 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0X00,0X00,0X00,0X00,0X00, 90 0X00,0X00,0X00,0X00,0X00,0X00,0X08,0X0C,0X0E,0X0E,0X0E,0X0E,0X0E,0X0E,0X0E,0X0E, 91 0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0X00,0X0E,0X1E,0X3E,0X7E,0XFE,0XFE,0XFE,0XFE, 92 0XFE,0XEE,0XCE,0X8E,0X0E,0X0E,0X0E,0X0E,0X0E,0X0E,0X0E,0X0C,0X08,0X00,0XFE,0XFE, 93 0XFE,0XFE,0XFE,0XFE,0XCE,0X8E,0X0E,0X0E,0X0E,0X0E,0X0E,0X0E,0XFE,0XFE,0XFE,0XFC, 94 0XF8,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 95 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02, 96 0X06,0X8E,0XDE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFC, 97 0XF8,0XF0,0XE0,0XC0,0X80,0X00,0X00,0X00,0X00,0X00,0X07,0X1C,0X30,0XE0,0X80,0X00, 98 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 99 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X03,0X07, 100 0X0F,0X1F,0X3F,0X7F,0XFF,0XFE,0XFC,0XF8,0XF0,0XE0,0XC0,0X80,0X00,0X00,0XFF,0XFF, 101 0XFF,0XFF,0XFF,0XFF,0X03,0X07,0X0F,0X1E,0X3C,0X78,0XF0,0XE0,0XFF,0XFF,0XFF,0XFF, 102 0XFF,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 103 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X18,0X1C,0X1E, 104 0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F, 105 0X3F,0X7F,0XFF,0XFF,0XFF,0XFF,0XFE,0XFC,0XF8,0XF0,0XE0,0XC0,0X80,0X00,0X01,0X07, 106 0X0C,0X38,0X20,0X30,0X18,0X0C,0XFE,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 107 0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X00,0X00,0X1C,0X1C,0X1C,0X1C,0X1C,0X1C,0X1C, 108 0X1C,0X1C,0X1C,0X1C,0X1C,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X1F,0X00,0X00,0X1F,0X1F, 109 0X1F,0X1F,0X1F,0X1F,0X1C,0X1C,0X1C,0X1C,0X1C,0X1C,0X1C,0X1D,0X1F,0X1F,0X1F,0X1F, 110 0X1F,0X1F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 111 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 112 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 113 0X00,0X00,0X00,0X00,0X01,0X03,0X03,0X07,0X8F,0XCF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFC, 114 0XF8,0XF0,0XE0,0XC0,0X80,0X00,0X1F,0X70,0XC0,0X80,0X00,0X00,0X00,0X00,0X00,0X00, 115 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 116 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 117 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 118 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 119 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 120 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 121 0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X03,0X03,0X03,0X03,0X03,0X03,0X03,0X03,0X03, 122 0X03,0X03,0X03,0X07,0X0F,0X0F,0X1E,0X3C,0X38,0X73,0X66,0XDC,0XF0,0XE0,0X80,0X00, 123 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 124 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 125 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 126 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 127 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 128 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 129 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 130 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X01,0X03,0X07, 131 0X04,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 132 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 133 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 134 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, 135 };
首先聲明數組是全局變量,再在循環中調用顯示函數。
1 /* 2 =============菜單顯示============== 3 芯片STM32F103C8T6,先作一個J20開機界面 4 OLED顯示屏: 5 GND 電源地 6 VCC 接3.3v電源 7 SCL 接PB8(SCL) 8 SDA 接PB9(SDA) 9 串口USB-TTL接法: 10 GND 電源地 11 3V3 接3.3v 12 TXD 接PB7 13 RXD 接PB6 14 ST-LINK V2接法: 15 GND 電源地 16 3V3 接3.3v 17 SWCLK 接DCLK 18 SWDIO 接DIO 19 by Bilibili 蔡子CaiZi 20 */ 21 #include "config.h" 22 #include "delay.h" 23 #include "usart.h" 24 #include "stm32f10x.h" 25 #include "oled.h" 26 #include "rtc.h" 27 #include "stdio.h" 28 #include "string.h" 29 extern unsigned char J20logo[]; 30 extern unsigned char J20logoR[]; 31 extern unsigned char BMP1[]; 32 int main() 33 { 34 // u8 txt[16]={0}; 35 delay_init();//初始化延時函數 36 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2,2位搶佔優先級和2位子優先級 37 usart_init(115200);//初始化串口1,波特率爲115200 38 // TIM3_PWM_Init(19999,71);//預分頻72,頻率1MHz,週期1us;自動裝載值20 000,故PWM週期1us*20 000 39 // TIM2_Init(499,71);//1MHz,每500us採集一次;可設置9us以上,但太小影響OLED顯示 40 // DMA1_Init(); //DMA初始化 41 // GPIOA_Init(); //PA初始化 42 // Adc_Init(); //ADC初始化 43 // RTC_Init(); //RTC初始化 44 OLED_Init(); //初始化OLED 45 OLED_Clear(); 46 OLED_Refresh_Gram(); 47 while (1){ 48 // itoa(PWM1value,txt,10);//將int類型轉換成10進制字符串 49 // printf("採樣值:%d\t舵量:%s\t",ch1Value,txt); 50 // printf("當前時間:%d:%d:%d\n",calendar.hour,calendar.min,calendar.sec); 51 // //OLED_Clear();//一直清屏會形成閃爍 52 // strcat(txt," us");//合併字符串 53 // OLED_ShowString(6,3,txt,24); //位置6,3;字符大小24*24點陣 54 OLED_DrawBMP(0,0,128,8,J20logo); 55 // OLED_DrawBMP(0,0,128,8,BMP1); 56 //OLED_ShowString(6,3,"CaiZi",24); //位置6,3;字符大小24*24點陣 57 //OLED_Refresh_Gram(); 58 delay_ms(500); 59 } 60 }
完整的工程文件已上傳天翼雲盤:
https://cloud.189.cn/t/rYZzQ3yIbIrm(訪問碼:5eju)
項目宣傳視頻
若是你手上有廢棄的遙控器,有吃灰的開發板,有9塊9包郵的烙鐵或者焊臺,歡迎加入咱們,一塊兒來感覺DIY的樂趣;
若是你是一個技術小白,擁有一腔熱血卻很迷茫,歡迎加入咱們,雖然這裏除了知識和快樂,其餘什麼都沒有;
不管你是入坑菜鳥仍是航模老鳥,只要你有一顆熱愛的心,來自五湖四海,咱們都期待你的加入!
咱們期待聽到不一樣的聲音,但願獲得更多人的反饋,幫助咱們來研發和測試~
QQ羣:1091996634,密碼:J20
想要一塊兒研發的話,加羣后請私聊羣主喔~
開源團隊現有成員:(持續更新)
蔡子CaiZi(B站up主) - STM32開發
A-XIN(模友) - STM32開發
小何(模友) - PCB設計
ZL_Studio(B站up主) - C51開發
王每天(舍友) - STM32開發
劉桶桶(模友) - PCB設計
簡繁(模友) - UI設計
王博(模友) - STM32開發
與非門(模友) - STM32開發
Talons(模友) - STM32開發
大米粥(模友) - 結構設計
P a S S ||(模友) - STM32開發