女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

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

SWM32S基于GT9157的觸摸芯片驅(qū)動(dòng)

0xQC_gh_ed4f95b ? 來(lái)源:華芯微特32位MCU ? 2023-04-10 09:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

此文章介紹SWM32S基于5寸800*480分辨率液晶屏+GT9157觸摸芯片的驅(qū)動(dòng)實(shí)現(xiàn)過(guò)程。

硬件

MCU:SWM32SRET6

TFT-LCD:5.0寸 800*480電容

觸摸芯片:GT9157

MCU

SWM32S 內(nèi)嵌 ARM Cortex-M4 控制器,片上包含精度為 1%以?xún)?nèi)的 20MHz/40MHz 時(shí)鐘,可通過(guò) PLL 倍頻到 120MHz 時(shí)鐘,提供多種內(nèi)置 FLASH/SRAM 大小可供選擇,支持 ISP(在系統(tǒng)編程)操作及 IAP(在應(yīng)用編程)。


外設(shè)串行總線包括 1 個(gè) CAN 接口,多個(gè) UART 接口、 SPI 通信接口(支持主/從選擇)及 I2C 接口(支持主/從選擇)。此外還包括 1 個(gè) 32 位看門(mén)狗定時(shí)器, 6 組 32 位通用定時(shí)器, 1 組 32 位專(zhuān)用脈沖寬度測(cè)量定時(shí)器, 12 通道 16 位的 PWM 發(fā)生器, 2 個(gè) 8 通道 12 位、 1MSPS 的逐次逼近型ADC 模塊, 1 個(gè) SDIO 接口模塊, TFT-LCD 液晶驅(qū)動(dòng)模塊以及 RTC 實(shí)時(shí)時(shí)鐘、 SRAMC、 SDRAMC、NORFLC 接口控制模塊,同時(shí)提供欠壓檢測(cè)及低電壓復(fù)位功能。

觸摸芯片

9acae928-d73a-11ed-bfe3-dac502259ad0.png

GT9157擁有26個(gè)驅(qū)動(dòng)通道和14個(gè)感應(yīng)通道,以滿(mǎn)足更高的touch 精度要求。同時(shí)支持最先進(jìn)的短距離傳輸功能HotKnot。GT9157可同時(shí)識(shí)別5個(gè)觸摸點(diǎn)位的實(shí)時(shí)準(zhǔn)確位置,移動(dòng)軌跡及觸摸面積。并可根據(jù)主控需要,讀取相應(yīng)點(diǎn)數(shù)的觸摸信息,其內(nèi)部結(jié)構(gòu)如上圖所示。

9ae8df78-d73a-11ed-bfe3-dac502259ad0.png

GT9157觸控芯片有兩個(gè)備選的I2C通訊地址,這是由芯片的上電時(shí)序決定,如圖所示。上 電時(shí)序有Reset 引腳和INT引腳生成,若Reset引腳從低電電平轉(zhuǎn)變到高電平期間,INT 引腳為高電平的時(shí)候,觸控芯片使用的I2C設(shè)備地址為0x28/0x29(8位寫(xiě)、讀地址),7位地址為0x14;若Reset引腳從低電電平轉(zhuǎn)變到高電平期間,INT 引腳一直為低電平,則觸控芯片使用的I2C設(shè)備地址為0xBA/0xBB(8位寫(xiě)、讀地址),7位地址為0x5D。

代碼

9b0a7160-d73a-11ed-bfe3-dac502259ad0.png

紅色框內(nèi)文件相對(duì)重要并解讀

( 1) bsp_I2C_GT9XX.c 文件的解讀

#include "bsp_I2C_GT9XX.h"

#include "string.h"

#include "bsp_SysTick.h"

#include

void I2C_Mst_Init(void)

{

I2C_InitStructure I2C_initStruct;

PORT_Init(PORTA, PIN4, FUNMUX0_I2C0_SCL, 1); // GPIOA.4配置為I2C0 SCL引腳

PORT_Init(PORTA, PIN5, FUNMUX1_I2C0_SDA, 1); // GPIOA.5配置為I2C0 SDA引腳

I2C_initStruct.Master = 1;

I2C_initStruct.Addr7b = 1;

I2C_initStruct.MstClk = 400000;

I2C_initStruct.MstIEn = 0;

I2C_Init(I2C0, &I2C_initStruct);

I2C_Open(I2C0);

}

void bsp_GT9XX_InitRst(void)

{

// 第一階段設(shè)置端口,并拉低兩個(gè)端口

GPIO_Init(GPIO_PORT_GT_RST, GPIO_PIN_GT_RST, 1, 0, 0); // 復(fù)位腳 輸出

GPIO_Init(GPIO_PORT_GT_INT, GPIO_PIN_GT_INT, 1, 0, 0); // 中斷腳

GPIO_ClrBit(GPIOC, PIN3);

GPIO_ClrBit(GPIOC, PIN2); // 拉低兩個(gè)端口的電平,準(zhǔn)備復(fù)位

rt_thread_delay(10);

// 第二階段復(fù)位芯片

GPIO_SetBit(GPIOC, PIN3); // 拉高開(kāi)始復(fù)位芯片

rt_thread_delay(10);

// 第三階段設(shè)置中斷引腳為 中斷功能

GPIO_Init(GPIOC, PIN2, 0, 0, 0);

EXTI_Init(GPIOC, PIN2, EXTI_RISE_EDGE); // 上升沿觸發(fā)中斷

I2C_Mst_Init(); // 硬件IIC端口初始化

rt_thread_delay(10);

}

void GT9XX_IRQEnable(void)

{

NVIC_EnableIRQ(GPIOC2_IRQn); // 使能GPIOC.2端口中斷

EXTI_Open(GPIOC, PIN2); // 打開(kāi)外部中斷

}

void GT9XX_IRQDisable(void)

{

NVIC_DisableIRQ(GPIOC2_IRQn); // 禁止GPIOC.2端口中斷

EXTI_Close(GPIOC, PIN2); // 關(guān)閉外部中斷

GPIO_Init(GPIOC, PIN2, 1, 0, 1); // 回到普通輸出端口

GPIO_ClrBit(GPIOC, PIN2);

}

/**********************************************************************************************************************

* 函數(shù)名稱(chēng): bsp_WrNumByte()

* 功能說(shuō)明: IIC寫(xiě)Num個(gè)字節(jié)

* 輸 入: reg 寄存器地址,*p數(shù)據(jù),WrByteNum寫(xiě)入的數(shù)據(jù)個(gè)數(shù)

* 輸 出: 0,正常 其他,失敗

* 注意事項(xiàng):

**********************************************************************************************************************/

uint8_t bsp_GT9XX_WrReg(uint8_t IdAddr,uint8_t *p,uint8_t WrByteNum)

{

I2C0->MSTDAT = IdAddr | 0; // 發(fā)送器件地址+寫(xiě)命令

I2C0->MSTCMD = (1 << I2C_MSTCMD_STA_Pos) |??

(1 << I2C_MSTCMD_WR_Pos);? // 發(fā)送起始位和從機(jī)地址

while(I2C0->MSTCMD & I2C_MSTCMD

以上程序是我們?yōu)橐浦病?bsp_GT9XX.c”文件做的基本驅(qū)動(dòng),接下來(lái)我們?cè)敿?xì)分析一下,


這部分源碼具體實(shí)現(xiàn)了什么功能。I2C_Mst_Init()函數(shù)中,我們首先聲明了一個(gè)結(jié)構(gòu)體,接著將 GPIOA.4 和 GPIOA.5進(jìn)行了特殊功能管腳的分配,設(shè)置為 I2C 接口。接著是給結(jié)構(gòu)體賦值, 他們的意義分別是設(shè)置為主機(jī)模式;地址為 7 位接口;I2C 通信時(shí)鐘頻率設(shè)為 400HHz;不使能中斷模式,接著是調(diào)用庫(kù)函數(shù)進(jìn)行給寄存器賦值;最后打開(kāi) I2C 接口。接下來(lái) bsp_GT9XX_InitRst()函數(shù)為初始化,主要是設(shè)置端口,并將 GT9157 的設(shè)備 I2C 地址設(shè)置為 0xBA,這個(gè)設(shè)置過(guò)程參加上面的時(shí)序;接著將 GPIOC.2 設(shè)置為中斷,上升沿觸發(fā)。函數(shù) GT9XX_IRQEnable()和 GT9XX_IRQDisable(),顧名思義,就是使能中斷和失能中斷,這個(gè)好理解最后就是兩個(gè)讀寫(xiě) GT9157 寄存器的函數(shù),這兩個(gè)函數(shù),需要讀者先理解 I2C 通信的基本協(xié)議,之后安裝基本協(xié)議,一句、一句的理解,這里需要注意的是

I2C0->MSTCMD = (1 << I2C_MSTCMD_RD_Pos) ?|

(1 << I2C_MSTCMD_ACK_Pos) |

(1 << I2C_MSTCMD_STO_Pos);

這三行程序,當(dāng)我們?cè)谂茉摮绦虻臅r(shí)候, 一般是先寫(xiě)寄存器,再讀數(shù),而此時(shí)如果沒(méi)有這三行程序,會(huì)把下一次的讀數(shù)據(jù)和寫(xiě)寄存器混淆,導(dǎo)致 GT9157 芯片不認(rèn)識(shí)此協(xié)議。當(dāng)我們加了之后,就有結(jié)束,有開(kāi)始,繼而芯片能夠識(shí)別此協(xié)議。

現(xiàn)象

復(fù)位 初始化后串口打印,可以看到x軸800 ,y軸480

9b3309cc-d73a-11ed-bfe3-dac502259ad0.png

進(jìn)行一個(gè)點(diǎn)的觸摸 ID:0 定位是(257,237) 寬度62

9b4c9f68-d73a-11ed-bfe3-dac502259ad0.png

進(jìn)行兩個(gè)點(diǎn)的觸摸 可以看到ID0 ID1

9b4c9f68-d73a-11ed-bfe3-dac502259ad0.png

進(jìn)行五個(gè)點(diǎn)的觸摸 可以看到ID0 ID1 ID2 ID3 ID4

9b835e90-d73a-11ed-bfe3-dac502259ad0.png

附錄

程序代碼

#include "bsp_uart.h"

#include "rtthread.h"

#include "ugui.h"

#include "bsp_gt9xx.h"

extern void GTP_TouchProcess(void);

UG_GUI gui;

uint32_t LCD_Buffer[800*480 * 2 / 4] __attribute__((at(SDRAMM_BASE))) = {0};

void _HW_DrawPoint(UG_S16 x, UG_S16 y, UG_COLOR c)

{

LCD_Buffer[y*400 + x/2] &= ~(0xFFFF << ((x%2) == 0 ? 0 : 16));

LCD_Buffer[y*400 + x/2] |= (c << ((x%2) == 0 ? 0 : 16));

}

ALIGN(RT_ALIGN_SIZE) // 以字對(duì)齊(4字節(jié))

static rt_uint8_t rt_Test_thread_stack[1024]; // 線程棧

// 線程Test

static void Test_thread_entry(void* parameter)

{

printf(" RGB工程初始化OK ...... ");

LCD->SRCADDR = (uint32_t)LCD_Buffer;

LCD_Start(LCD);

UG_Init(&gui,(void(*)(UG_S16,UG_S16,UG_COLOR))_HW_DrawPoint,800,480);

GTP_Init_Panel();

while(1)

{

}

}

int main(void)

{

static struct rt_thread Test_thread; // 線程控制塊

printf("SWM320 ");

// 創(chuàng)建靜態(tài)線程

rt_thread_init(&Test_thread, // 線程控制塊

"Test", // 線程名字,在shell里面可以看到

Test_thread_entry, // 線程入口函數(shù)

RT_NULL, // 線程入口函數(shù)參數(shù)

&rt_Test_thread_stack[0], // 線程棧起始地址

sizeof(rt_Test_thread_stack), // 線程棧大小

5, // 線程的優(yōu)先級(jí)

20); // 線程時(shí)間片

rt_thread_startup(&Test_thread); // 啟動(dòng)線程

}

void LCD_Handler(void)

{

LCD_INTClr(LCD);

LCD_Start(LCD);

}

void GPIOC2_Handler(void)

{

EXTI_Clear(GPIOC, PIN2); // 清楚中斷標(biāo)志位

GTP_TouchProcess();

}

審核編輯 :李倩

聲明:本文內(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)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17048

    瀏覽量

    183511
  • adc
    adc
    +關(guān)注

    關(guān)注

    99

    文章

    6671

    瀏覽量

    548684
  • 通信接口
    +關(guān)注

    關(guān)注

    3

    文章

    251

    瀏覽量

    31424

原文標(biāo)題:SWM32S基于GT9157的觸摸芯片驅(qū)動(dòng)

文章出處:【微信號(hào):gh_ed4f95bde4df,微信公眾號(hào):華芯微特32位MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    RK3588-電容觸控芯片GT9XX觸摸調(diào)試筆記

    基于RK3588平臺(tái), 電容觸控芯片GT9XX觸摸調(diào)試總結(jié)。 觸摸芯片:電容觸控芯片
    的頭像 發(fā)表于 06-13 10:47 ?3850次閱讀
    RK3588-電容觸控<b class='flag-5'>芯片</b><b class='flag-5'>GT</b>9XX<b class='flag-5'>觸摸</b>調(diào)試筆記

    【i.MX6ULL】驅(qū)動(dòng)開(kāi)發(fā)12——電容觸摸驅(qū)動(dòng)實(shí)踐(上)

    本篇主要介紹了多點(diǎn)觸摸芯片GT911的驅(qū)動(dòng)編寫(xiě)與使用,并通過(guò)將觸摸點(diǎn)實(shí)時(shí)打印的方式,測(cè)試觸摸功能
    的頭像 發(fā)表于 05-30 09:38 ?5865次閱讀
    【i.MX6ULL】<b class='flag-5'>驅(qū)動(dòng)</b>開(kāi)發(fā)12——電容<b class='flag-5'>觸摸</b><b class='flag-5'>驅(qū)動(dòng)</b>實(shí)踐(上)

    SWM32S單片機(jī)的SDRAM和LCD控制器的用法

    SWM32S單片機(jī)內(nèi)部集成了8MB的SDRAM以及LCD控制器,非常適合用于屏幕驅(qū)動(dòng)。其中LCD控制器支持RGB565格式的接口,最大支持1024*768分辨率。今天來(lái)介紹一下這兩個(gè)外設(shè)的用法。
    發(fā)表于 09-26 11:22 ?2579次閱讀

    深圳回收觸摸IC,收購(gòu)觸摸IC

    868 GT911 GT9110 GT912 GT913 GT9137 GT9147
    發(fā)表于 01-14 18:07

    專(zhuān)業(yè)回收觸摸ic 收購(gòu)觸摸ic

    9110 GT912 GT913 GT9137 GT9147 GT915 GT9157
    發(fā)表于 05-14 16:30

    深圳回收觸摸IC 高價(jià)收購(gòu)觸摸IC

    913 GT9137 GT9147 GT915 GT9157 GT9158 GT9271
    發(fā)表于 09-01 10:39

    如何對(duì)SWM32SRET6芯片進(jìn)行測(cè)試呢

    SWM32SRET6芯片有哪些特點(diǎn)呢?如何對(duì)SWM32SRET6芯片進(jìn)行測(cè)試呢?
    發(fā)表于 12-21 06:27

    分享芯片--SWM254S(霍爾開(kāi)關(guān)IC)

    1. 概述 SWM254S是一顆微功耗、高靈敏度S極單極性的霍爾開(kāi)關(guān)傳感裝置。SWM254S使用薄體縮小型貼片DTSP4(2.8*1.5*0.7mm)封裝,工作溫度范圍為-20~85°C
    發(fā)表于 05-27 15:36

    SWM201系列MCU數(shù)據(jù)手冊(cè)

    運(yùn)算放大器模塊,4 路比較器模塊,并提供欠壓檢測(cè)及低電壓復(fù)位功能。SWM20DC6U7 內(nèi)部集成 6N 型 90V 三相半橋高邊和低邊驅(qū)動(dòng)器。SWM20PG6S6 內(nèi)部集成 P-N 型最高 40V 三相半橋高邊和低邊
    發(fā)表于 09-14 08:56

    gt9xx觸摸屏(電容屏)驅(qū)動(dòng)代碼

    gt9xx 觸摸屏(電容屏)驅(qū)動(dòng)代碼,飛思卡爾平臺(tái)。
    發(fā)表于 05-16 11:05 ?27次下載

    LTDC—LCD觸摸畫(huà)板

    -ST固件庫(kù)版本:1.5.1 【 !】功能簡(jiǎn)介: 驅(qū)動(dòng)5點(diǎn)觸控電容屏,實(shí)現(xiàn)簡(jiǎn)單的觸摸畫(huà)板功能。 學(xué)習(xí)目的:學(xué)習(xí)如何驅(qū)動(dòng)觸摸屏(GT9157
    發(fā)表于 12-13 15:43 ?14次下載

    電容式觸摸屏控制芯片GT811數(shù)據(jù)手冊(cè)

    5 點(diǎn)電容式觸摸屏控制芯片 GT811,采用投射式電容檢測(cè)原理,由 16 個(gè)驅(qū)動(dòng)通道與 10 個(gè)感應(yīng)通道組成觸摸檢測(cè)網(wǎng)絡(luò),通過(guò)內(nèi)置模擬放大電
    發(fā)表于 09-29 10:13 ?14次下載

    MAX9157EHJ+ 接口 - 驅(qū)動(dòng)器,接收器,收發(fā)器

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)MAX9157EHJ+相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有MAX9157EHJ+的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,MAX9157EHJ+真值表,MAX
    發(fā)表于 01-13 18:29
    MAX<b class='flag-5'>9157</b>EHJ+ 接口 - <b class='flag-5'>驅(qū)動(dòng)</b>器,接收器,收發(fā)器

    MAX9157EGJ+T 接口 - 驅(qū)動(dòng)器,接收器,收發(fā)器

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)MAX9157EGJ+T相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有MAX9157EGJ+T的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,MAX9157EGJ+T真值表,MAX
    發(fā)表于 01-28 18:03
    MAX<b class='flag-5'>9157</b>EGJ+T 接口 - <b class='flag-5'>驅(qū)動(dòng)</b>器,接收器,收發(fā)器

    基于32位高速M(fèi)CU芯片SWM201GS7的單電阻空氣凈化器電機(jī)驅(qū)動(dòng)DEMO方案

    基于32位高速M(fèi)CU芯片SWM201GS7的單電阻空氣凈化器電機(jī)驅(qū)動(dòng)DEMO方案
    的頭像 發(fā)表于 11-07 17:15 ?1272次閱讀
    基于32位高速M(fèi)CU<b class='flag-5'>芯片</b><b class='flag-5'>SWM</b>201GS7的單電阻空氣凈化器電機(jī)<b class='flag-5'>驅(qū)動(dòng)</b>DEMO方案
    主站蜘蛛池模板: 高阳县| 长海县| 衡阳市| 那坡县| 太湖县| 章丘市| 固始县| 酒泉市| 桦甸市| 景谷| 朝阳县| 泸西县| 南昌县| 通河县| 井陉县| 永川市| 太白县| 法库县| 土默特左旗| 山东省| 进贤县| 嫩江县| 上虞市| 丰城市| 睢宁县| 喀喇沁旗| 黄浦区| 太仆寺旗| 鄱阳县| 杂多县| 久治县| 舒兰市| 广汉市| 辉南县| 阿拉尔市| 宣威市| 偃师市| 河东区| 永川市| 寿阳县| 桃源县|