chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于stm32,u8g2菜單之間切換(三)寫(xiě)u8g2的一些必要函數(shù)

stm32嵌入式應(yīng)用學(xué)習(xí) ? 來(lái)源:stm32嵌入式應(yīng)用學(xué)習(xí) ? 作者:stm32嵌入式應(yīng)用學(xué) ? 2025-03-07 12:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

要想stm應(yīng)用u8g2繪制界面需要對(duì)u8g2原函數(shù)

u8g2_Setup_ssd1306_i2c_128x128_f(u8g2_t *u8g2, const u8g2_cb_t *rotation, u8x8_msg_cb byte_cb, u8x8_msg_cb gpio_and_delay_cb)里面后兩個(gè)參數(shù)實(shí)現(xiàn)函數(shù)。

因?yàn)槭褂玫能浖?shí)現(xiàn)i2c,所以u8x8_msg_cb byte_cb這個(gè)參數(shù)直接使用自帶的u8x8_byte_sw_i2c即可,我們只要實(shí)現(xiàn)u8x8_msg_cb gpio_and_delay_cb這個(gè)參數(shù)寫(xiě)一個(gè)函數(shù):

uint8_t u8x8_gpio_and_delay(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr)
{
switch (msg)
{
case U8X8_MSG_DELAY_100NANO: // delay arg_int * 100 nano seconds
__NOP();
break;
case U8X8_MSG_DELAY_10MICRO: // delay arg_int * 10 micro seconds
for (uint16_t n = 0; n < 320; n++)
{
__NOP();
}
break;
case U8X8_MSG_DELAY_MILLI: // delay arg_int * 1 milli second
HAL_Delay(1);
break;
case U8X8_MSG_DELAY_I2C: // arg_int is the I2C speed in 100KHz, e.g. 4 = 400 KHz
Tims_delay_us(5);
break; // arg_int=1: delay by 5us, arg_int = 4: delay by 1.25us
case U8X8_MSG_GPIO_I2C_CLOCK: // arg_int=0: Output low at I2C clock pin
if(arg_int==1)
{
HAL_GPIO_WritePin(OLEDSCK_GPIO_Port,OLEDSCK_Pin,GPIO_PIN_SET);
}
else

if(arg_int==0)
{HAL_GPIO_WritePin(OLEDSCK_GPIO_Port,OLEDSCK_Pin,GPIO_PIN_RESET);}

break; // arg_int=1: Input dir with pullup high for I2C clock pin
case U8X8_MSG_GPIO_I2C_DATA: // arg_int=0: Output low at I2C data pin
if(arg_int==1)
{
HAL_GPIO_WritePin(OLEDSDA_GPIO_Port,OLEDSDA_Pin,GPIO_PIN_SET);
}
else

if(arg_int==0)
{HAL_GPIO_WritePin(OLEDSDA_GPIO_Port,OLEDSDA_Pin,GPIO_PIN_RESET);}


break; // arg_int=1: Input dir with pullup high for I2C data pin
case U8X8_MSG_GPIO_MENU_SELECT:
u8x8_SetGPIOResult(u8x8, /* get menu select pin state */ 0);
break;
case U8X8_MSG_GPIO_MENU_NEXT:
u8x8_SetGPIOResult(u8x8, /* get menu next pin state */ 0);
break;
case U8X8_MSG_GPIO_MENU_PREV:
u8x8_SetGPIOResult(u8x8, /* get menu prev pin state */ 0);
break;
case U8X8_MSG_GPIO_MENU_HOME:
u8x8_SetGPIOResult(u8x8, /* get menu home pin state */ 0);
break;
default:
u8x8_SetGPIOResult(u8x8, 1); // default return value
break;
}
return 1;
}
wKgZPGfKekaALLi7AABuU-SQPTs776.png

劃線的地方是需要根據(jù)我們自己對(duì)stm32 io口配置和us、ms延時(shí)函數(shù)自己需要修改的。實(shí)現(xiàn)后寫(xiě)入函數(shù)參數(shù):

u8g2_Setup_ssd1306_i2c_128x128_f(&u8g2, U8G2_R0, u8x8_byte_sw_i2c, u8x8_gpio_and_delay);

接下來(lái)就可以測(cè)試下:

#include"u8g2.h"
#include"u8x8.h"
#include"TimeDelay.h"
#include"icon.h"
#include "ui.h"
{……..}
u8g2_Setup_ssd1306_i2c_128x128_f(&u8g2, U8G2_R0, u8x8_byte_sw_i2c, u8x8_gpio_and_delay); // 初始化u8g2 結(jié)構(gòu)體
u8g2_InitDisplay(&u8g2); //對(duì)緩存進(jìn)行初始化 // 初始化u8x8_gpio_and_delay函數(shù)
u8g2_SetPowerSave(&u8g2, 0); //wake up 屏幕 // 初始化u8x8_byte_hw_i2c函數(shù)
u8g2_ClearBuffer(&u8g2); //清除緩存區(qū)
HAL_Delay(1);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
u8g2_DrawLine(&u8g2, -16,-16, 127, 127);
 u8g2_DrawLine(&u8g2, 0,50, 100, 50);
u8g2_DrawLine(&u8g2, 0,0, 0,100);
u8g2_SetFont(&u8g2,u8g2_font_helvR08_tr);
u8g2_DrawButtonUTF8(&u8g2,4, 20, U8G2_BTN_BW2, 0, 2, 2, "Btn" );
u8g2_SetFont(&u8g2,u8g2_font_ncenB14_tr);
u8g2_DrawStr(&u8g2,0,45,"Hello World!");
u8g2_SendBuffer(&u8g2);
u8g2_ClearBuffer(&u8g2);
}

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2307

    文章

    11128

    瀏覽量

    371446
  • u8g2
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    2279
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RA-Eco-RA6M4部分功能測(cè)評(píng)3

    C的SCL/SDA切換)和延時(shí)功能(滿足通信時(shí)序要求); 通信接口回調(diào)函數(shù):負(fù)責(zé)實(shí)現(xiàn)I2C/SPI等物理層通信,完成數(shù)據(jù)向OLED控制器的傳輸。 這兩類函數(shù)需遵循
    發(fā)表于 09-05 20:47

    【RA-Eco-RA6M4開(kāi)發(fā)板評(píng)測(cè)】2、I2C外設(shè)驅(qū)動(dòng)OLED屏幕和移植u8g2

    ssd1306(兼容ssd1315)設(shè)備的初始化函數(shù),這里使用該函數(shù)是可以點(diǎn)亮屏幕的,使用其他的則有問(wèn)題。 OLED的屏幕顯示效果如下。 總結(jié) 移植現(xiàn)有的u8g2圖形庫(kù),完成需要的回調(diào)函數(shù)
    發(fā)表于 07-23 13:51

    基于極海APM32F411 MCU移植U8g2驅(qū)動(dòng)OLED指南

    基于Arm Cortex-M4F內(nèi)核,工作主頻120MHz,具有高速運(yùn)算能力、多種工作模式、以及豐富的高精度外設(shè)和通訊接口;內(nèi)置CRC32運(yùn)算單元,可為用戶提供高集成度、高可靠性的SoC方案;作為APM32F4系列MCU的超值型拓展產(chǎn)品,能很好的滿足用戶對(duì)功耗、性能、性價(jià)比方面的產(chǎn)品均衡需求,可適用于電力,儀器儀表,工控,家電,物聯(lián)網(wǎng),新能源,智慧樓宇等廣泛的應(yīng)用領(lǐng)域。
    的頭像 發(fā)表于 07-17 14:45 ?2880次閱讀
    基于極海APM32F411 MCU移植<b class='flag-5'>U8g2</b>驅(qū)動(dòng)OLED指南

    零知開(kāi)源——STM32F4結(jié)合BMP581氣壓傳感器實(shí)現(xiàn)ST7789中文顯示教程

    傳感器數(shù)據(jù)采集。通過(guò)U8g2庫(kù)實(shí)現(xiàn)高質(zhì)量中文渲染,混合Adafruit_GFX進(jìn)行高效數(shù)據(jù)顯示,實(shí)時(shí)展示溫度、壓力和高度數(shù)據(jù)。教程詳細(xì)介紹了硬件連接方案(I2C/SPI接口)、軟件架構(gòu)設(shè)計(jì)(包含庫(kù)依賴關(guān)系和數(shù)據(jù)讀取機(jī)制)以及中文文本渲染方法。
    的頭像 發(fā)表于 07-09 09:21 ?1345次閱讀
    零知開(kāi)源——<b class='flag-5'>STM32</b>F4結(jié)合BMP581氣壓傳感器實(shí)現(xiàn)ST7789中文顯示教程

    零知開(kāi)源——STM32F4結(jié)合BMP581氣壓傳感器實(shí)現(xiàn)ST7789中文顯示教程

    ;gt;使用U8g2庫(kù)實(shí)現(xiàn)高質(zhì)量中文渲染 >混合使用Adafruit_GFX和U8g2實(shí)現(xiàn)高效顯示 >實(shí)時(shí)顯示溫度、壓力和高度數(shù)據(jù) >針對(duì)STM32F4系列優(yōu)化
    發(fā)表于 07-08 18:55

    STM32U5+8bit_8080 LCD 怎么配置touchgfx?

    我參與的項(xiàng)目使用STM32U575做為主空,使用fmc來(lái)驅(qū)動(dòng)8080接口的8bitLCD,配置touchgfx時(shí)不能配置為8bit,其他選型例如DMA2D也使用不了,我該怎么做?
    發(fā)表于 06-09 06:23

    零知開(kāi)源——STM32F1驅(qū)動(dòng)MAX31865讀取線PT100溫度傳感器

    邏輯 setup()函數(shù), 初始化串口、OLED和MAX31865,設(shè)置線制模式:?void setup() { Serial.begin(115200); u8g2.begin(); // 啟動(dòng)OLED
    發(fā)表于 05-23 18:27

    份CS32G020K8U6的keil的chipsea.CS32G02x_DFP.pack安裝包,謝謝

    用CS32G020K8U6開(kāi)發(fā)充電寶方案,工作交接導(dǎo)致keil相關(guān)的pack缺失,麻煩哪位好心人給我發(fā)份到郵箱694306192@qq.com,謝謝啦
    發(fā)表于 05-21 11:30

    STM32U5+8bit_8080 LCD怎么配置touchgfx?

    我參與的項(xiàng)目使用STM32U575做為主空,使用fmc來(lái)驅(qū)動(dòng)8080接口的8bitLCD,配置touchgfx時(shí)不能配置為8bit,其他選型例如DMA2D也使用不了,我該怎么做?
    發(fā)表于 04-27 07:11

    使用STM32G031G6U6控制繼電器,PA8無(wú)法輸出高低電平的原因?

    使用STM32G031G6U6控制繼電器,發(fā)現(xiàn)PA8無(wú)法輸出高低電平。配置如下: GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP
    發(fā)表于 03-13 06:46

    關(guān)于stm32u8g2菜單之間切換)用u8g2寫(xiě)個(gè)菜單無(wú)限左右循環(huán)

    u8g2_DrawXBMP();? 函數(shù)畫(huà)圖需要的是我們圖片的地址而不是整個(gè)圖片數(shù)組。 下面是源碼: ? int ui_run(int *a,int *a_tag,uint8_
    的頭像 發(fā)表于 03-11 09:10 ?1158次閱讀

    關(guān)于stm32,u8g2菜單之間切換(1)

    在移植U8g2庫(kù)
    的頭像 發(fā)表于 03-05 16:43 ?974次閱讀

    關(guān)于stm32,u8g2菜單之間切換(二)u8g2的移植

    移植是基于stm32cubeide,oled屏是1306驅(qū)動(dòng)128x64的。接口用iic軟件模擬,hal庫(kù)iic硬件貌似有bug。 1,先在網(wǎng)上下載u8g2包。 2,解壓后找到源文件文件夾。 3
    的頭像 發(fā)表于 03-04 09:52 ?1550次閱讀
    <b class='flag-5'>關(guān)于</b><b class='flag-5'>stm32</b>,<b class='flag-5'>u8g2</b><b class='flag-5'>菜單</b><b class='flag-5'>之間</b><b class='flag-5'>切換</b>(二)<b class='flag-5'>u8g2</b>的移植

    深入了解U8g2與LVGL圖形庫(kù)

    在單片機(jī)開(kāi)發(fā)領(lǐng)域,圖形顯示功能變得越來(lái)越重要。無(wú)論是工業(yè)控制界面、智能家居設(shè)備,還是手持儀器儀表,都需要個(gè)高效且易用的圖形庫(kù)來(lái)實(shí)現(xiàn)豐富的可視化效果。U8g2 和 LVGL 就是其中兩款備受關(guān)注的圖形庫(kù),它們各有特點(diǎn),適用于不同的應(yīng)用場(chǎng)景。今天,我們就來(lái)深入了解這兩個(gè)圖形
    的頭像 發(fā)表于 02-13 11:01 ?3592次閱讀

    比亞迪仰望U8迎來(lái)重磅OTA升級(jí)

    近日,仰望U8 迎來(lái)重磅OTA,仰望U8豪華版迎來(lái)V2.1.0 OTA大版本升級(jí),實(shí)現(xiàn)了19項(xiàng)功能新增,16項(xiàng)功能優(yōu)化;仰望U8越野玩家版迎來(lái)OTA V2.1.1上線 ,新增18大功能,17項(xiàng)功能優(yōu)化。其中,仰望
    的頭像 發(fā)表于 12-26 14:37 ?1266次閱讀