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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3812|回復: 1
打印 上一主題 下一主題
收起左側

TI公司芯片LDC1314 STM32測試程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:523552 發表于 2019-7-23 10:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近使用STM32F103編寫的LDC1314多通道測試程序,里面包含LDC1314的數據手冊,請認真讀取分析,特別是寄存器操作那一塊的內容。

單片機源程序如下:
  1. #include "ldc1314.h"
  2. #include "myiic.h"
  3. #include "delay.h"

  4. u16 LDC1314_Read2Byte(u8 reg_addr)
  5. {
  6.      u16 reg_data=0;
  7.      u16 temp=0;
  8.      IIC_Start();
  9.      IIC_Send_Byte(WRITE_ADDR);
  10.      if(IIC_Wait_Ack())return 0;
  11.      IIC_Send_Byte(reg_addr);
  12.            if(IIC_Wait_Ack())return 0;
  13.      IIC_Start();
  14.            IIC_Send_Byte(READ_ADDR);
  15.      if(IIC_Wait_Ack())return 0;
  16.      reg_data= IIC_Read_Byte(1);
  17.      reg_data=(reg_data<<8)&0xFF00;
  18.      temp=IIC_Read_Byte(0);
  19.      IIC_Stop();
  20.         
  21.           reg_data|=temp;
  22.     return reg_data;
  23. }

  24. u8 LDC1314_Write2Byte(u8 reg_addr,u16 reg_data)
  25. {        
  26.    u8 data_high=(u8)((reg_data&0xFF00)>>8);
  27.    u8 data_low=(u8)reg_data&0x00FF;
  28.          IIC_Start();
  29.          IIC_Send_Byte(WRITE_ADDR);   
  30.    if(IIC_Wait_Ack())return 0;
  31.    IIC_Send_Byte(reg_addr );   
  32.          if(IIC_Wait_Ack())return 0;        
  33.    IIC_Send_Byte(data_high);
  34.    if(IIC_Wait_Ack())return 0;        
  35.    IIC_Send_Byte(data_low);
  36.    if(IIC_Wait_Ack())return 0;                 
  37.    IIC_Stop();
  38.          delay_ms(5);
  39.    return 1;
  40. }

  41. void LDC1314_Init_Multi()
  42. {      
  43.    LDC1314_Write2Byte(RCOUNT0,0XFFFF);
  44.    LDC1314_Write2Byte(RCOUNT1,0XFFFF);
  45.          LDC1314_Write2Byte(RCOUNT2,0XFFFF);
  46.    LDC1314_Write2Byte(RCOUNT3,0XFFFF);
  47.         
  48.          LDC1314_Write2Byte(SETTLECOUNT0,0x000A);
  49.    LDC1314_Write2Byte(SETTLECOUNT1,0x000A);
  50.    LDC1314_Write2Byte(SETTLECOUNT2,0x000A);
  51.          LDC1314_Write2Byte(SETTLECOUNT3,0x000A);
  52.         
  53.    LDC1314_Write2Byte(CLK_DIVIDERS0,0x2002);
  54.    LDC1314_Write2Byte(CLK_DIVIDERS1,0x2002);
  55.    LDC1314_Write2Byte(CLK_DIVIDERS2,0x2002);
  56.    LDC1314_Write2Byte(CLK_DIVIDERS3,0x2002);
  57.         
  58.    LDC1314_Write2Byte(ERROR_CONFIG,0X0000);  
  59.    LDC1314_Write2Byte(RESET_DEV,0x0000);
  60.    
  61. //   LDC1314_Write2Byte(MUX_CONFIG,0X420C);  
  62.    LDC1314_Write2Byte(MUX_CONFIG,0xC20D);
  63.         
  64.    LDC1314_Write2Byte(DRIVE_CURRENT0,0xF800);
  65.    LDC1314_Write2Byte(DRIVE_CURRENT1,0xF800);
  66.    LDC1314_Write2Byte(DRIVE_CURRENT2,0xF800);
  67.    LDC1314_Write2Byte(DRIVE_CURRENT3,0xF800);
  68.       
  69.    LDC1314_Write2Byte(CONFIG,0x1401);

  70. }

  71. void LDC1314_Init_single()
  72. {
  73.    LDC1314_Write2Byte(RCOUNT0,0xFFFF);
  74.    LDC1314_Write2Byte(SETTLECOUNT0,0x0000);
  75.    LDC1314_Write2Byte(CLK_DIVIDERS0,0x2002);
  76.    LDC1314_Write2Byte(RESET_DEV,0x0000);     
  77.    LDC1314_Write2Byte(DRIVE_CURRENT0,0xF800);
  78.    LDC1314_Write2Byte(CONFIG,0x1441);       //大于1.5mA電流(僅通道0使用)
  79. }

  80. u16 LDC_read_CHx(u8 CHx)        //讀Channel x Conversion Result
  81. {
  82.         u8 reg_addr1 = 0;        
  83.         u16 val = 0;                                
  84.         switch(CHx)
  85.         {
  86.                 case 0:
  87.                 {
  88.                         reg_addr1 = DATA0_MSB;
  89.                 }break;
  90.                 case 1:
  91.                 {
  92.                         reg_addr1 = DATA1_MSB;
  93.                 }break;
  94.                 case 2:
  95.                 {
  96.                         reg_addr1 = DATA2_MSB;
  97.                 }break;
  98.                 case 3:
  99.                 {
  100.                         reg_addr1 = DATA3_MSB;
  101.                 }break;
  102.                 default: return 0;        //輸入錯誤
  103.         }
  104.         
  105.         val = LDC1314_Read2Byte(reg_addr1);        //讀取寄存器值
  106.         return val;        

  107. }
  108.         
復制代碼

所有資料51hei提供下載:
LDC1314 模塊.7z (1.69 MB, 下載次數: 57)


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

使用道具 舉報

沙發
ID:848354 發表于 2021-3-13 01:27 | 只看該作者
請問這個WRITE_ADDR為什么是0x55,不是0x2A?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲自拍偷拍免费视频 | 一区二区三区四区免费在线观看 | 亚洲欧美v| 国产精品久久久久久久久久久久久 | 日日夜夜免费精品视频 | 色婷婷综合久久久中字幕精品久久 | 青青草原综合久久大伊人精品 | 精品福利视频一区二区三区 | 亚洲成人一区二区 | 国产区在线观看 | 久久精品aaa | 丝袜一区二区三区 | www.国产| 亚洲欧洲精品成人久久奇米网 | 欧美日韩电影免费观看 | 亚洲成在线观看 | 成人综合伊人 | 成人超碰在线 | 日韩有码一区 | 玖玖视频网 | 中文字幕一级毛片视频 | 国产精品久久久久999 | 蜜桃视频在线观看www社区 | 黄色片在线观看网址 | 狠狠操狠狠操 | 成人精品一区二区三区 | 天天天操操操 | 国产亚洲网站 | 中文字幕不卡在线观看 | 亚洲网站在线观看 | 国产一区二区三区在线 | 日韩欧美黄色 | 精品国产99| 一区二区三区在线电影 | 亚洲精品一区二三区不卡 | 99国内精品久久久久久久 | 国产精品99视频 | 天天艹| av天天看 | 亚洲有码转帖 | 国产区在线 |