久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7643|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

BS83B12A-3觸摸芯片與STM32通過IIC通信讀取觸摸芯片的按鍵值源碼

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:136928 發(fā)表于 2018-11-19 18:31 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
BS83B12A-3觸摸芯片與STM32通過IIC通信讀取觸摸芯片的按鍵值,BS83B12A-3的程序,stm32F103C8T6的程序,壓縮包里面都有


單片機(jī)源程序如下:
  1. #include "BS83B12A-3.h"
  2. #include "USER_PROGRAM/USER_PROGRAM.CEX"
  3. #include "BS83B12A_LIBV413/BS83B12A_LIBV413.CEX"

  4. #define u8 unsigned char
  5. #define u16 unsigned int


  6. #define RxNum 5
  7. #define TxNum 5

  8. volatile unsigned char  IICRxCnt=0,IICTxCnt=0;//iic接收、發(fā)送數(shù)據(jù)計(jì)數(shù)器
  9. volatile unsigned char  IICRxData[RxNum],IICTxData[TxNum];//接收、發(fā)送緩存  數(shù)量為5
  10. volatile  bit   IICRxOK=0,IICTxOK=0;//接收、發(fā)送完成標(biāo)志位

  11. //宏定義各個(gè)LED對應(yīng)的管腳
  12. #define LEDCOM _pb4  //LED公共管腳
  13. #define LED0   _pa4

  14. //函數(shù)庫的初始化 相當(dāng)于不用函數(shù)庫時(shí)while(1)前面的初始化
  15. void USER_PROGRAM_INITIAL()
  16. {
  17.         
  18.         //IIC_Init
  19.         _pac2  = 1;                        //SCL
  20.         _pac0  = 1;                        //SDA
  21.         _sima  = 0xA0;
  22.         _simc0 = 0xC2;

  23.         //_rnic=1;
  24.         
  25.          _simf = 0;
  26.          _sime = 1;
  27.         _emi  = 1;                        //  總中斷使能         
  28.         
  29.         IICTxData[0]='0';
  30.         IICTxData[1]='1';
  31.         IICTxData[2]='2';
  32.         IICTxData[3]='\r';
  33.         IICTxData[4]='\n';
  34.         
  35.         //各個(gè)管腳設(shè)置為輸出
  36.         _pbc4=0;
  37.         _pac4 =0;
  38.         LEDCOM=0;        
  39.         LED0 =0;
  40. }   


  41. //函數(shù)庫的主循環(huán) 相當(dāng)于不用函數(shù)庫時(shí)while(1)里面的循環(huán)
  42. void USER_PROGRAM()
  43. {
  44.         
  45.         u8 temp;
  46.         
  47.         GET_KEY_BITMAP();//將函數(shù)庫掃描的結(jié)果復(fù)制到DATA_BUF里
  48.         //DATA_BUF[0]的bit7-bit0 代表觸摸按鍵KEY8-KEY1
  49.         switch(DATA_BUF[0])
  50.         {
  51.                 case 0x01:temp=0x31;break;
  52.                 case 0x02:temp=0x32;break;
  53.                 case 0x04:temp=0x33;break;
  54.                 case 0x08:temp=0x34;break;
  55.                 default:temp=0x30;break;        
  56.                
  57.         }
  58.         
  59.         if(IICRxOK)
  60.         {
  61.                 //將接收到 后三個(gè)字節(jié)返回,第一個(gè)字節(jié)為觸摸結(jié)果字節(jié)
  62.                 IICTxData[0]=temp;
  63.                 IICTxData[1]='-';
  64.                 IICTxData[2]=IICRxData[2];
  65.                 IICTxData[3]=IICRxData[3];
  66.                 IICTxData[4]=IICRxData[4];
  67.                 if(IICRxData[2] ==0X35)
  68.                 {
  69.                           LED0 = 1;        
  70.                 }
  71.                 else
  72.                         LED0 = 0;

  73.                 IICRxOK=0;
  74.         }

  75. }


  76. //iic中斷
  77. DEFINE_ISR(IIC_ISR, 0x10)
  78. {
  79.         _clrwdt();

  80.         if(_haas) //地址匹配                                
  81.         {        
  82.                 _pc1=1;        
  83.                 if(_srw==0)        //從機(jī)讀
  84.                 {
  85.                         _htx= 0;
  86.                         _txak=0;
  87.                         _acc=_simd;
  88.                 }
  89.                 else//從機(jī)寫
  90.                 {
  91.                         _htx = 1;                                
  92.                         _simd =IICTxData[0];//從機(jī)寫第一個(gè)數(shù)據(jù)
  93.                         IICTxCnt=1;
  94.                 }
  95.         }
  96.         else//數(shù)據(jù)
  97.         {
  98.                 if(_htx)//接收還是發(fā)送  1-發(fā)送  0-接收
  99.                 {                                                               
  100.                         if(_rxak)//從機(jī)未收到ack不再發(fā)送
  101.                         {                                                        
  102.                                 _htx  = 0;
  103.                                 _txak = 0;   
  104.                                 _acc  = _simd;
  105.                         }
  106.                         else //從機(jī)收到ack繼續(xù)發(fā)送
  107.                         {        
  108.                                 switch(IICTxCnt)//按順序把待發(fā)送的數(shù)據(jù)發(fā)送出去
  109.                                 {
  110.                                         case 1:_simd =IICTxData[1];break;        
  111.                                         case 2:_simd =IICTxData[2];break;
  112.                                         case 3:_simd =IICTxData[3];break;
  113.                                         case 4:_simd =IICTxData[4];break;
  114.                                 }
  115.                                 IICTxCnt++;
  116.                                 if(IICTxCnt>=TxNum)
  117.                                 {
  118.                                         IICTxOK=1;//發(fā)送完成
  119.                                         IICTxCnt=0;        
  120.                                 }
  121.                         }
  122.                 }
  123.                 else//接收
  124.                 {
  125.                         _txak = 0;
  126.                         IICRxData[IICRxCnt++]=_simd;//接收5個(gè)數(shù)據(jù)
  127.                         if(IICRxCnt>=RxNum)
  128.                         {
  129.                                 IICRxOK=1;//接收完成
  130.                                 
  131.                                 IICRxCnt=0;
  132.                         }
  133.                 }
  134.         }
  135.         _simf = 0;
  136. }
復(fù)制代碼

所有資料51hei提供下載:
STM32f103IICANDBS83B12A-13.rar (326.23 KB, 下載次數(shù): 129)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

來自 2#
ID:708859 發(fā)表于 2020-3-15 17:38 | 只看該作者
這個(gè)程序有人驗(yàn)證過嗎?我怎么試了不行呀,holtek的又不能仿真,在里//iic中斷里面放了些燈,看起來又有中斷產(chǎn)生。STM32這邊求與大神討論。
回復(fù)

使用道具 舉報(bào)

板凳
ID:423221 發(fā)表于 2018-11-19 20:06 | 只看該作者
good job
回復(fù)

使用道具 舉報(bào)

地板
ID:139989 發(fā)表于 2019-6-4 15:01 | 只看該作者
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

5#
ID:564787 發(fā)表于 2019-6-19 09:37 | 只看該作者
最近剛好有個(gè)項(xiàng)目要用到這個(gè)觸摸芯片,下來參考參考
回復(fù)

使用道具 舉報(bào)

6#
ID:558925 發(fā)表于 2019-7-5 13:46 | 只看該作者
學(xué)習(xí),學(xué)習(xí)!
回復(fù)

使用道具 舉報(bào)

7#
ID:758073 發(fā)表于 2020-5-22 10:23 | 只看該作者
不錯(cuò)的東西
回復(fù)

使用道具 舉報(bào)

8#
ID:758073 發(fā)表于 2020-5-22 10:23 | 只看該作者
有人驗(yàn)證過嗎?講講
回復(fù)

使用道具 舉報(bào)

9#
ID:356290 發(fā)表于 2021-3-9 14:44 | 只看該作者
error: '_simtof' undeclared (first use in this function)
'project' - Total 1 error(s), 1 warning(s)
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久99| 日韩中文字幕免费 | 欧美日韩在线一区二区三区 | 天天操天天干天天透 | 亚洲日本一区二区三区四区 | 精品国产乱码久久久久久中文 | 日p视频免费看 | 久久伊人精品 | 亚洲一区二区三区四区在线观看 | 国产片侵犯亲女视频播放 | 亚洲免费精品 | 毛片a级毛片免费播放100 | 久久国产精品久久久久久 | 99精品福利视频 | 九色在线观看 | 成人在线精品 | h视频在线播放 | 一区二区三区在线电影 | 免费看一区二区三区 | 国产日韩欧美中文 | 精品久久一区二区三区 | 久久久精品视频一区二区三区 | 国产中文一区二区三区 | 精品一区二区三区四区外站 | 有码在线 | 亚洲一区视频在线播放 | 国产精品久久久久久久岛一牛影视 | 91传媒在线观看 | 日韩精品一区在线 | 中文字幕 在线观看 | 欧美一级片在线播放 | 国产精品资源在线 | 黄色三级毛片 | 亚洲成色777777在线观看影院 | 日韩一区二区在线视频 | 亚洲 欧美 精品 | 国偷自产av一区二区三区 | 99久久久无码国产精品 | 欧美性视频在线播放 | 亚洲精品一区二区三区免 | 91久久国产综合久久 |