wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 15432|回復(fù): 25
收起左側(cè)

MSP430F5529硬件IIC驅(qū)動(dòng)IIC接口的OLED源碼

  [復(fù)制鏈接]
ID:222477 發(fā)表于 2018-7-17 10:01 | 顯示全部樓層 |閱讀模式
  1. //******************************************************************************
  2. //   MSP430F552x Demo - USCI_B0, I2C Master multiple byte TX/RX
  3. //
  4. //   Description: I2C master communicates to I2C slave sending and receiving
  5. //   3 different messages of different length. I2C master will enter LPM0 mode
  6. //   while waiting for the messages to be sent/receiving using I2C interrupt.
  7. //   ACLK = NA, MCLK = SMCLK = DCO 16MHz.
  8. //
  9. //                                     /|\ /|\
  10. //                   MSP430F5529       4.7k |
  11. //                 -----------------    |  4.7k
  12. //            /|\ |             P3.1|---+---|-- I2C Clock (UCB0SCL)
  13. //             |  |                 |       |
  14. //             ---|RST          P3.0|-------+-- I2C Data (UCB0SDA)
  15. //                |                 |
  16. //                |                 |
  17. //                |                 |
  18. //                |                 |
  19. //                |                 |
  20. //                |                 |
  21. //
  22. //   Nima Eskandari
  23. //   Texas Instruments Inc.
  24. //   April 2017
  25. //   Built with CCS V7.0
  26. //******************************************************************************

  27. #include <msp430.h>
  28. #include <stdint.h>
  29. #include <stdbool.h>
  30. #include "oledfont.h"

  31. //******************************************************************************
  32. // Example Commands ************************************************************
  33. //******************************************************************************
  34. #define X_WIDTH         128
  35. #define Y_WIDTH         64
  36. #define OLED_CMD  0        //寫命令
  37. #define OLED_DATA 1        //寫數(shù)據(jù)
  38. #define SLAVE_ADDR  0x3C

  39. /* CMD_TYPE_X_SLAVE are example commands the master sends to the slave.
  40. * The slave will send example SlaveTypeX buffers in response.
  41. *
  42. * CMD_TYPE_X_MASTER are example commands the master sends to the slave.
  43. * The slave will initialize itself to receive MasterTypeX example buffers.
  44. * */

  45. #define CMD_TYPE_0_SLAVE      0
  46. #define CMD_TYPE_1_SLAVE      1
  47. #define CMD_TYPE_2_SLAVE      2

  48. #define CMD_TYPE_0_MASTER      3
  49. #define CMD_TYPE_1_MASTER      4
  50. #define CMD_TYPE_2_MASTER      5

  51. #define TYPE_0_LENGTH   1
  52. #define TYPE_1_LENGTH   2
  53. #define TYPE_2_LENGTH   6

  54. #define MAX_BUFFER_SIZE     20

  55. /* MasterTypeX are example buffers initialized in the master, they will be
  56. * sent by the master to the slave.
  57. * SlaveTypeX are example buffers initialized in the slave, they will be
  58. * sent by the slave to the master.
  59. * */

  60. uint8_t MasterType2 [TYPE_2_LENGTH] = {'F', '4', '1', '9', '2', 'B'};
  61. uint8_t MasterType1 [28] = {0xae,0x00,0x10,0x40,0x81,0xcf,0xa1,0xc8,0xa6,0xa8,0x3f,0xd3,0x00,0xd5,0x80,0xd9,0xf1,0xda,0x12,0xdb,0x40,0x20,0x02,0x8d,0x14,0xa4,0xa6,0xaf};
  62. uint8_t MasterType0 [1] = {0};


  63. uint8_t SlaveType2 [TYPE_2_LENGTH] = {0};
  64. uint8_t SlaveType1 [TYPE_1_LENGTH] = {0};
  65. uint8_t SlaveType0 [TYPE_0_LENGTH] = {0};

  66. void delay(unsigned int z)
  67. {
  68.   unsigned int x,y;
  69.   for(x=z;x>0;x--)
  70.     for(y=5000;y>0;y--);
  71. }

  72. //******************************************************************************
  73. // General I2C State Machine ***************************************************
  74. //******************************************************************************

  75. typedef enum I2C_ModeEnum{
  76.     IDLE_MODE,
  77.     NACK_MODE,
  78.     TX_REG_ADDRESS_MODE,
  79.     RX_REG_ADDRESS_MODE,
  80.     TX_DATA_MODE,
  81.     RX_DATA_MODE,
  82.     SWITCH_TO_RX_MODE,
  83.     SWITHC_TO_TX_MODE,
  84.     TIMEOUT_MODE
  85. } I2C_Mode;

  86. /* Used to track the state of the software state machine*/
  87. I2C_Mode MasterMode = IDLE_MODE;

  88. /* The Register Address/Command to use*/
  89. uint8_t TransmitRegAddr = 0;

  90. /* ReceiveBuffer: Buffer used to receive data in the ISR
  91. * RXByteCtr: Number of bytes left to receive
  92. * ReceiveIndex: The index of the next byte to be received in ReceiveBuffer
  93. * TransmitBuffer: Buffer used to transmit data in the ISR
  94. * TXByteCtr: Number of bytes left to transfer
  95. * TransmitIndex: The index of the next byte to be transmitted in TransmitBuffer
  96. * */
  97. uint8_t ReceiveBuffer[MAX_BUFFER_SIZE] = {0};
  98. uint8_t RXByteCtr = 0;
  99. uint8_t ReceiveIndex = 0;
  100. uint8_t TransmitBuffer[MAX_BUFFER_SIZE] = {0};
  101. uint8_t TXByteCtr = 0;
  102. uint8_t TransmitIndex = 0;

  103. /* I2C Write and Read Functions */

  104. /* For slave device with dev_addr, writes the data specified in *reg_data
  105. *
  106. * dev_addr: The slave device address.
  107. *           Example: SLAVE_ADDR
  108. * reg_addr: The register or command to send to the slave.
  109. *           Example: CMD_TYPE_0_MASTER
  110. * *reg_data: The buffer to write
  111. *           Example: MasterType0
  112. * count: The length of *reg_data
  113. *           Example: TYPE_0_LENGTH
  114. *  */
  115. I2C_Mode I2C_Master_WriteReg(uint8_t dev_addr, uint8_t reg_addr, uint8_t *reg_data, uint8_t count);

  116. /* For slave device with dev_addr, read the data specified in slaves reg_addr.
  117. * The received data is available in ReceiveBuffer
  118. *
  119. * dev_addr: The slave device address.
  120. *           Example: SLAVE_ADDR
  121. * reg_addr: The register or command to send to the slave.
  122. *           Example: CMD_TYPE_0_SLAVE
  123. * count: The length of data to read
  124. *           Example: TYPE_0_LENGTH
  125. *  */
  126. I2C_Mode I2C_Master_ReadReg(uint8_t dev_addr, uint8_t reg_addr, uint8_t count);
  127. void CopyArray(uint8_t *source, uint8_t *dest, uint8_t count);

  128. I2C_Mode I2C_Master_ReadReg(uint8_t dev_addr, uint8_t reg_addr, uint8_t count)
  129. {
  130.     /* Initialize state machine */
  131.     MasterMode = TX_REG_ADDRESS_MODE;
  132.     TransmitRegAddr = reg_addr;
  133.     RXByteCtr = count;
  134.     TXByteCtr = 0;
  135.     ReceiveIndex = 0;
  136.     TransmitIndex = 0;

  137.     /* Initialize slave address and interrupts */
  138.     UCB0I2CSA = dev_addr;
  139.     UCB0IFG &= ~(UCTXIFG + UCRXIFG);       // Clear any pending interrupts
  140.     UCB0IE &= ~UCRXIE;                       // Disable RX interrupt
  141.     UCB0IE |= UCTXIE;                        // Enable TX interrupt

  142.     UCB0CTL1 |= UCTR + UCTXSTT;             // I2C TX, start condition
  143.     __bis_SR_register(LPM0_bits + GIE);              // Enter LPM0 w/ interrupts

  144.     return MasterMode;

  145. }


  146. I2C_Mode I2C_Master_WriteReg(uint8_t dev_addr, uint8_t reg_addr, uint8_t *reg_data, uint8_t count)
  147. {
  148.     /* Initialize state machine */
  149.     MasterMode = TX_REG_ADDRESS_MODE;
  150.     TransmitRegAddr = reg_addr;

  151.     //Copy register data to TransmitBuffer
  152.     CopyArray(reg_data, TransmitBuffer, count);

  153.     TXByteCtr = count;
  154.     RXByteCtr = 0;
  155.     ReceiveIndex = 0;
  156.     TransmitIndex = 0;

  157.     /* Initialize slave address and interrupts */
  158.     UCB0I2CSA = dev_addr;
  159.     UCB0IFG &= ~(UCTXIFG + UCRXIFG);       // Clear any pending interrupts
  160.     UCB0IE &= ~UCRXIE;                       // Disable RX interrupt
  161.     UCB0IE |= UCTXIE;                        // Enable TX interrupt

  162.     UCB0CTL1 |= UCTR + UCTXSTT;             // I2C TX, start condition
  163.     __bis_SR_register(LPM0_bits + GIE);              // Enter LPM0 w/ interrupts

  164.     return MasterMode;
  165. }

  166. void CopyArray(uint8_t *source, uint8_t *dest, uint8_t count)
  167. {
  168.     uint8_t copyIndex = 0;
  169.     for (copyIndex = 0; copyIndex < count; copyIndex++)
  170.     {
  171.         dest[copyIndex] = source[copyIndex];
  172.     }
  173. }

  174. //******************************************************************************
  175. // Device Initialization *******************************************************
  176. //******************************************************************************

  177. void initClockTo16MHz()
  178. {
  179.     UCSCTL3 |= SELREF_2;                      // Set DCO FLL reference = REFO
  180.     UCSCTL4 |= SELA_2;                        // Set ACLK = REFO
  181.     __bis_SR_register(SCG0);                  // Disable the FLL control loop
  182.     UCSCTL0 = 0x0000;                         // Set lowest possible DCOx, MODx
  183.     UCSCTL1 = DCORSEL_5;                      // Select DCO range 16MHz operation
  184.     UCSCTL2 = FLLD_0 + 487;                   // Set DCO Multiplier for 16MHz
  185.                                               // (N + 1) * FLLRef = Fdco
  186.                                               // (487 + 1) * 32768 = 16MHz
  187.                                               // Set FLL Div = fDCOCLK
  188.     __bic_SR_register(SCG0);                  // Enable the FLL control loop

  189.     // Worst-case settling time for the DCO when the DCO range bits have been
  190.     // changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx
  191.     // UG for optimization.
  192.     // 32 x 32 x 16 MHz / 32,768 Hz = 500000 = MCLK cycles for DCO to settle
  193.     __delay_cycles(500000);//
  194.     // Loop until XT1,XT2 & DCO fault flag is cleared
  195.     do
  196.     {
  197.         UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); // Clear XT2,XT1,DCO fault flags
  198.         SFRIFG1 &= ~OFIFG;                          // Clear fault flags
  199.     }while (SFRIFG1&OFIFG);                         // Test oscillator fault flag
  200. }


  201. void initGPIO()
  202. {
  203.     //I2C Pins
  204.     P3SEL |= BIT0 + BIT1;                     // P3.0,1 option select

  205. }

  206. void initI2C()
  207. {
  208.     UCB0CTL1 |= UCSWRST;                      // Enable SW reset(復(fù)位使能)
  209.     UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC;     //  Master, I2C,synchronous mode(同步模式)
  210.     UCB0CTL1 = UCSSEL_2 + UCSWRST;            // Use SMCLK, keep SW reset
  211.     UCB0BR0 = 160;                            // fSCL = SMCLK/160 = ~100kHz
  212.     UCB0BR1 = 0;
  213.     UCB0I2CSA = SLAVE_ADDR;                   // Slave Address is 048h
  214.     UCB0CTL1 &= ~UCSWRST;                     // Clear SW reset, resume operation
  215.     UCB0IE |= UCNACKIE;                       //使能中斷
  216. }

  217. void OLED_WrCmd(unsigned char IIC_Command)
  218. {
  219.         MasterType0[0]=IIC_Command;
  220.       I2C_Master_WriteReg(SLAVE_ADDR, 0x00,MasterType0, 1);
  221. }

  222. void OLED_WrDat(unsigned char IIC_Data)
  223. {
  224.         MasterType0[0]=IIC_Data;
  225.       I2C_Master_WriteReg(SLAVE_ADDR, 0x40,MasterType0, 1);
  226. }

  227. //******************************************************************************
  228. // Main ************************************************************************
  229. // Send and receive three messages containing the example commands *************
  230. //******************************************************************************

  231. void OLED_Fill(unsigned char bmp_dat)
  232. {
  233.         unsigned char y,x;
  234.         for(y=0;y<8;y++)
  235.         {
  236.                 OLED_WrCmd(0xb0+y);
  237.                 OLED_WrCmd(0x01);
  238.                 OLED_WrCmd(0x10);
  239.                 for(x=0;x<128;x++)
  240.                 OLED_WrDat(bmp_dat);
  241.         }
  242. }

  243. void OLED_Set_Pos(unsigned char x, unsigned char y)
  244. {
  245.         OLED_WrCmd(0xb0+y);
  246.         OLED_WrCmd(((x&0xf0)>>4)|0x10);
  247.         OLED_WrCmd((x&0x0f)|0x01);
  248. }

  249. void OLED_Init(void)
  250. {
  251.         unsigned char i=0;
  252.         for(;i<28;i++)
  253.         {
  254.           MasterType0[0]=MasterType1[i];
  255.           I2C_Master_WriteReg(SLAVE_ADDR, 0x00,MasterType0, 1);
  256.         }
  257.         OLED_Fill(0x00); //初始清屏
  258.         OLED_Set_Pos(0,0);
  259. }

  260. void OLED_WR_Byte(unsigned dat,unsigned cmd)
  261. {
  262.         if(cmd)
  263.                         {

  264.    OLED_WrDat(dat);
  265.    
  266.                 }
  267.         else {
  268.    OLED_WrCmd(dat);
  269.                
  270.         }
  271. }


  272. void OLED_ShowChar(unsigned char x,unsigned char y,unsigned char chr,unsigned char Char_Size)
  273. {           
  274.         unsigned char c=0,i=0;       
  275.                 c=chr-' ';//得到偏移后的值                       
  276.                 if(x>128-1){x=0;y=y+2;}
  277.                 if(Char_Size ==16)
  278.                         {
  279.                         OLED_Set_Pos(x,y);       
  280.                         for(i=0;i<8;i++)
  281.                         OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
  282.                         OLED_Set_Pos(x,y+1);
  283.                         for(i=0;i<8;i++)
  284.                         OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
  285.                         }
  286.                         else {       
  287.                                 OLED_Set_Pos(x,y);
  288.                                 for(i=0;i<6;i++)
  289.                                 OLED_WR_Byte(F6x8[c][i],OLED_DATA);
  290.                                
  291.                         }
  292. }

  293. void OLED_U32toU16(unsigned char x,unsigned char y ,unsigned int n,unsigned char k)
  294. {
  295.         switch(n)
  296.         {
  297.                 case 0 :OLED_ShowChar(x,y,'0',k);break;
  298.                 case 1 :OLED_ShowChar(x,y,'1',k);break;
  299.                 case 2 :OLED_ShowChar(x,y,'2',k);break;
  300.                 case 3 :OLED_ShowChar(x,y,'3',k);break;
  301.                 case 4 :OLED_ShowChar(x,y,'4',k);break;
  302.                 case 5 :OLED_ShowChar(x,y,'5',k);break;
  303.                 case 6 :OLED_ShowChar(x,y,'6',k);break;
  304.                 case 7 :OLED_ShowChar(x,y,'7',k);break;
  305.                 case 8 :OLED_ShowChar(x,y,'8',k);break;
  306.                 case 9 :OLED_ShowChar(x,y,'9',k);break;
  307.         }
  308. }

  309. void OLED_Show_Number(unsigned char x,unsigned char y ,unsigned int a,unsigned char n)
  310. {
  311.         unsigned int b,c,d,e,f,g;
  312.         b=a/100000;
  313.         c=a%100000/10000;
  314.         d=a%10000/1000;
  315.         e=a%1000/100;
  316.         f=a%100/10;
  317.         g=a%10;
  318.         if(b!=0)
  319.         {
  320.                 OLED_U32toU16(x,y,b,n);
  321.                 OLED_U32toU16(x+n/2,y,c,n);
  322.                 OLED_U32toU16(x+n,y,d,n);
  323.                 OLED_U32toU16(x+(n/2)*3,y,e,n);
  324.                 OLED_U32toU16(x+2*n,y,f,n);
  325.                 OLED_U32toU16(x+(n/2)*5,y,g,n);
  326.         }else if(b==0&&c!=0)
  327.         {
  328.                 OLED_U32toU16(x,y,c,n);
  329.                 OLED_U32toU16(x+n/2,y,d,n);
  330.                 OLED_U32toU16(x+n,y,e,n);
  331.                 OLED_U32toU16(x+(n/2)*3,y,f,n);
  332.                 OLED_U32toU16(x+2*n,y,g,n);
  333.         }else if(b==0&&c==0&&d!=0)
  334.         {
  335.                 OLED_U32toU16(x,y,d,n);
  336.                 OLED_U32toU16(x+n/2,y,e,n);
  337.                 OLED_U32toU16(x+n,y,f,n);
  338.                 OLED_U32toU16(x+(n/2)*3,y,g,n);
  339.         }else if(b==0&&c==0&&d==0&&e!=0)
  340.         {
  341.                 OLED_U32toU16(x,y,e,n);
  342.                 OLED_U32toU16(x+n/2,y,f,n);
  343.                 OLED_U32toU16(x+n,y,g,n);
  344.         }else if(b==0&&c==0&&d==0&&e==0&&f!=0)
  345.         {
  346.                 OLED_U32toU16(x,y,f,n);
  347.                 OLED_U32toU16(x+n/2,y,g,n);
  348.         }else
  349.         {
  350.                 OLED_U32toU16(x,y,g,n);
  351.         }
  352. }

  353. int main(void) {

  354.     WDTCTL = WDTPW | WDTHOLD;                 // Stop watchdog timer

  355.     initClockTo16MHz();                        //配置系統(tǒng)時(shí)鐘為16Mhz
  356.     initGPIO();
  357.     initI2C();
  358.     delay(500);
  359.     OLED_Init();
  360.     OLED_Show_Number(0,0,500,16);
  361.     __bis_SR_register(LPM0_bits + GIE);
  362. }

  363. //******************************************************************************
  364. // I2C Interrupt ***************************************************************
  365. //******************************************************************************

  366. #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
  367. #pragma vector=USCI_B0_VECTOR
  368. __interrupt void USCI_B0_ISR(void)
  369. #elif defined(__GNUC__)
  370. void __attribute__ ((interrupt(USCI_B0_VECTOR))) USCI_B0_ISR (void)
  371. #else
  372. #error Compiler not supported!
  373. #endif
  374. {
  375.   //Must read from UCB0RXBUF
  376.   uint8_t rx_val = 0;

  377.   switch(__even_in_range(UCB0IV,0xC))
  378.   {
  379.     case USCI_NONE:break;                             // Vector 0 - no interrupt
  380.     case USCI_I2C_UCALIFG:break;                      // Interrupt Vector: I2C Mode: UCALIFG
  381.     case USCI_I2C_UCNACKIFG:break;                    // Interrupt Vector: I2C Mode: UCNACKIFG
  382.     case USCI_I2C_UCSTTIFG:break;                     // Interrupt Vector: I2C Mode: UCSTTIFG
  383.     case USCI_I2C_UCSTPIFG:break;                     // Interrupt Vector: I2C Mode: UCSTPIFG
  384.     case USCI_I2C_UCRXIFG:
  385.         rx_val = UCB0RXBUF;
  386.         if (RXByteCtr)
  387.         {
  388.           ReceiveBuffer[ReceiveIndex++] = rx_val;
  389.           RXByteCtr--;
  390.         }

  391.         if (RXByteCtr == 1)
  392.         {
  393.           UCB0CTL1 |= UCTXSTP;
  394.         }
  395.         else if (RXByteCtr == 0)
  396.         {
  397.           UCB0IE &= ~UCRXIE;
  398.           MasterMode = IDLE_MODE;
  399.           __bic_SR_register_on_exit(CPUOFF);      // Exit LPM0
  400.         }
  401.         break;                      // Interrupt Vector: I2C Mode: UCRXIFG
  402.     case USCI_I2C_UCTXIFG:
  403.         switch (MasterMode)
  404.         {
  405.           case TX_REG_ADDRESS_MODE:
  406.               UCB0TXBUF = TransmitRegAddr;
  407.               if (RXByteCtr)
  408.                   MasterMode = SWITCH_TO_RX_MODE;   // Need to start receiving now
  409.               else
  410.                   MasterMode = TX_DATA_MODE;        // Continue to transmission with the data in Transmit Buffer
  411.               break;

  412.           case SWITCH_TO_RX_MODE:
  413.               UCB0IE |= UCRXIE;              // Enable RX interrupt
  414.               UCB0IE &= ~UCTXIE;             // Disable TX interrupt
  415.               UCB0CTL1 &= ~UCTR;            // Switch to receiver
  416.               MasterMode = RX_DATA_MODE;    // State state is to receive data
  417.               UCB0CTL1 |= UCTXSTT;          // Send repeated start
  418.               if (RXByteCtr == 1)
  419.               {
  420.                   //Must send stop since this is the N-1 byte
  421.                   while((UCB0CTL1 & UCTXSTT));
  422.                   UCB0CTL1 |= UCTXSTP;      // Send stop condition
  423.               }
  424.               break;

  425.           case TX_DATA_MODE:
  426.               if (TXByteCtr)
  427.               {
  428.                   UCB0TXBUF = TransmitBuffer[TransmitIndex++];
  429.                   TXByteCtr--;
  430.               }
  431.               else
  432.               {
  433.                   //Done with transmission
  434.                   UCB0CTL1 |= UCTXSTP;     // Send stop condition
  435.                   MasterMode = IDLE_MODE;
  436.                   UCB0IE &= ~UCTXIE;                       // disable TX interrupt
  437.                   __bic_SR_register_on_exit(CPUOFF);      // Exit LPM0
  438.               }
  439.               break;

  440.           default:
  441.               __no_operation();
  442.               break;
  443.         }
  444.         break;                      // Interrupt Vector: I2C Mode: UCTXIFG
  445.     default: break;
  446.   }
  447. }
復(fù)制代碼


IIC&amp;OLED.rar

399.04 KB, 下載次數(shù): 410, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 3黑幣 +61 收起 理由
bec長(zhǎng)街 + 10
1106998808 + 1 淡定
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:240626 發(fā)表于 2018-7-20 23:45 | 顯示全部樓層
用keil5打開亂碼咋回事
回復(fù)

使用道具 舉報(bào)

ID:222477 發(fā)表于 2018-7-24 01:37 來自觸屏版 | 顯示全部樓層
1106998808 發(fā)表于 2018-7-20 23:45
用keil5打開亂碼咋回事

是用IAR編寫的
回復(fù)

使用道具 舉報(bào)

ID:383455 發(fā)表于 2018-8-9 09:26 | 顯示全部樓層
是個(gè)好貼 我準(zhǔn)備下載下來試試
回復(fù)

使用道具 舉報(bào)

ID:417544 發(fā)表于 2018-10-29 22:50 | 顯示全部樓層
好貼,可惜積分不夠,很想下載來試一下。
回復(fù)

使用道具 舉報(bào)

ID:417544 發(fā)表于 2018-10-31 10:54 | 顯示全部樓層
剛好有個(gè)其他LCD要硬件IIC接口,在樓主的基礎(chǔ)上改了一下測(cè)試OK,謝謝樓主分享!
回復(fù)

使用道具 舉報(bào)

ID:417544 發(fā)表于 2018-11-7 15:58 | 顯示全部樓層
發(fā)現(xiàn)有個(gè)問題,在運(yùn)行1-2小時(shí)后會(huì)宕機(jī),屏幕顯示刷新一部分后面刷新不動(dòng),重啟運(yùn)行又是正常的,I2C頻率改慢也是一樣的,上拉電阻使用4.7K.
回復(fù)

使用道具 舉報(bào)

ID:542238 發(fā)表于 2019-6-16 12:40 | 顯示全部樓層
switch(__even_in_range(UCB0IV,0xC))因?yàn)槲矣玫男酒^文件里沒有找到UCB0IV,可以用其他的
回復(fù)

使用道具 舉報(bào)

ID:542238 發(fā)表于 2019-6-16 12:44 | 顯示全部樓層
switch(__even_in_range(UCB0IV,0xC)),因?yàn)橛玫牟皇荈5529,在頭文件中沒有找到UCB0IV,可以用其他的代替嗎?
回復(fù)

使用道具 舉報(bào)

ID:574354 發(fā)表于 2019-7-2 23:33 | 顯示全部樓層
這個(gè)我最近在用不錯(cuò)
回復(fù)

使用道具 舉報(bào)

ID:294235 發(fā)表于 2019-7-27 19:40 | 顯示全部樓層
這是官方例程嗎
回復(fù)

使用道具 舉報(bào)

ID:623987 發(fā)表于 2019-10-14 17:44 | 顯示全部樓層
謝謝,太有用了!!!
回復(fù)

使用道具 舉報(bào)

ID:645686 發(fā)表于 2020-3-23 08:32 | 顯示全部樓層
能顯示漢自嗎?
回復(fù)

使用道具 舉報(bào)

ID:347452 發(fā)表于 2020-9-24 11:33 | 顯示全部樓層
請(qǐng)問下OLED這個(gè)怎么作為子函數(shù)使用啊
回復(fù)

使用道具 舉報(bào)

ID:443608 發(fā)表于 2021-6-25 16:20 | 顯示全部樓層
您好 為什么我的IIC配置進(jìn)不去中斷呢?
回復(fù)

使用道具 舉報(bào)

16#
無效樓層,該帖已經(jīng)被刪除
17#
無效樓層,該帖已經(jīng)被刪除
ID:955970 發(fā)表于 2021-7-23 17:52 | 顯示全部樓層
1106998808 發(fā)表于 2018-7-20 23:45
用keil5打開亂碼咋回事

msp430好像只能用ccs或者iar for msp430
回復(fù)

使用道具 舉報(bào)

ID:956252 發(fā)表于 2021-7-25 09:58 | 顯示全部樓層
怎么接線
回復(fù)

使用道具 舉報(bào)

ID:955821 發(fā)表于 2021-7-27 15:59 | 顯示全部樓層
driverlib.h顯示找不到是怎么回事
回復(fù)

使用道具 舉報(bào)

ID:810658 發(fā)表于 2021-7-30 21:07 | 顯示全部樓層
想問一下移植了您的程序?yàn)槭裁闯绦驎?huì)卡在這里不動(dòng)啊  if (RXByteCtr == 1)         {           UCB0CTL1 |= UCTXSTP;《----這一行         }         else if (RXByteCtr == 0) 我只不過用的是ccs啊
回復(fù)

使用道具 舉報(bào)

ID:958485 發(fā)表于 2021-8-3 20:20 | 顯示全部樓層
問一下,sda和scl的io接口3.0和3.1換成別打接口(比如3.5和3.6),程序怎么改,我直接改mainc里面那個(gè)gpio沒用
回復(fù)

使用道具 舉報(bào)

23#
無效樓層,該帖已經(jīng)被刪除
24#
無效樓層,該帖已經(jīng)被刪除
25#
無效樓層,該帖已經(jīng)被刪除
26#
無效樓層,該帖已經(jīng)被刪除
27#
無效樓層,該帖已經(jīng)被刪除
ID:1009475 發(fā)表于 2022-3-10 15:05 | 顯示全部樓層
好代碼,下載用用了
回復(fù)

使用道具 舉報(bào)

29#
無效樓層,該帖已經(jīng)被刪除
ID:1037933 發(fā)表于 2022-7-1 17:39 | 顯示全部樓層

可以用gcc打開
回復(fù)

使用道具 舉報(bào)

31#
無效樓層,該帖已經(jīng)被刪除
32#
無效樓層,該帖已經(jīng)被刪除
33#
無效樓層,該帖已經(jīng)被刪除
34#
無效樓層,該帖已經(jīng)被刪除
ID:1089866 發(fā)表于 2023-7-28 00:35 | 顯示全部樓層
1106998808 發(fā)表于 2018-7-20 23:45
用keil5打開亂碼咋回事

軟件編碼改一下就可以了
回復(fù)

使用道具 舉報(bào)

36#
無效樓層,該帖已經(jīng)被刪除
ID:1090317 發(fā)表于 2023-8-1 22:11 | 顯示全部樓層
tiger_work 發(fā)表于 2018-10-29 22:50
好貼,可惜積分不夠,很想下載來試一下。

很容易得的
回復(fù)

使用道具 舉報(bào)

38#
無效樓層,該帖已經(jīng)被刪除
39#
無效樓層,該帖已經(jīng)被刪除
40#
無效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
日韩精品一线二线三线| 性高潮免费视频| 欧美精品aaa| 色欲综合视频天天天| 韩国v欧美v日本v亚洲v| 日韩精品福利一区二区三区| a视频在线观看| 18激情网站| 小说区乱图片区| 免费av网站在线| 久久久久亚洲精品| 蜜桃一区二区三区在线观看| 国产综合无码一区二区色蜜蜜| 给我看免费高清在线观看| 白白操在线视频| caoporen国产精品| 欧美黄色片在线观看| 在线不卡中文字幕| 亚洲人成在线观看一区二区| 国产一区二区三区四区在线观看| 99久久夜色精品国产亚洲狼| 精品国产18久久久久久二百| 免费在线中文字幕| 少妇av一区二区三区无码| 国产精品爽黄69| www.色综合| 精品捆绑美女sm三区| 黄色一区二区在线观看| 久久精子c满五个校花| 毛片不卡一区二区| 欧美日韩免费| 欧美人与拘性视交免费看| 美女久久久久久| 欧美日韩色网| 国产视频网站在线| 丁香花高清视频完整版在线观看| 国内精品免费视频精选在线观看| 国产精品综合一区二区| 九九99精品| 国产美女免费视频| 亚洲综合一二三| 国产馆在线观看| 日本少妇xxxx软件| 成人日韩在线视频| 99热在线这里只有精品| 成人在线观看毛片| 亚洲午夜精品久久| 区一区二区三区中文字幕| 成人高清在线观看| 91久久中文字幕| 久久久久电影| 日韩成人一区| 国产污视频在线播放| 日本美女高清在线观看免费| 超碰在线中文| 手机福利视频欧美| caoporn超碰国产公开| xxx在线视频| 你懂的视频网址| 国产伦精品一区二区三区高清版禁| 在线天堂中文| 一本本久综合久久爱| 先锋影音av中文资源| 成人免费一级视频| 天天射,天天干| www.一区二区三区.com| 午夜福利理论片在线观看| 国产成人自拍一区| 亚洲激情丁香| 日韩黄色成人| 国产精品一区二区三区高清在线| 欧美a极品极品欧美| 3d性欧美动漫精品xxxx软件| 手机免费看av片| 黄色一级片免费的| av免费一区二区| 中文字幕亚洲乱码| 日本高清免费在线视频| 国产ts在线观看| aaaaaav| 日韩精品电影一区二区| 永久免费观看片现看| 一区二区在线观看免费视频| 国产午夜福利精品| 一本色道久久综合亚洲| а√中文在线资源库| 日韩精品三区四区| 高清毛片在线观看| wwwww亚洲| 在线天堂新版最新版在线8| 中文不卡1区2区3区| 日韩毛片免费看| 97视频一区| 成人看的视频| 99精品国产一区二区青青牛奶 | 最新亚洲人成网站在线观看| 视频二区在线| 男插女视频久久久| 亚洲欧美激情一区| 久久久久九九精品影院| 91成人精品在线| 日韩高清一级| 欧美aⅴ99久久黑人专区| 亚洲永久字幕| 粉嫩aⅴ一区二区三区四区五区| 91在线观看免费视频| 亚洲天堂久久久久久久| 91久久免费观看| 欧美精品一区二区在线播放| 色999日韩欧美国产| 热久久这里只有精品| 国产成人免费观看| 97cao在线| 88久久精品无码一区二区毛片| 国产美女喷水视频| 久久久久久免费观看| 亚洲中文字幕在线观看| 欧美老**bbbb毛片| www.男人的天堂.com| 在线免费看黄网站| 免费在线观看一区| 国产精品三级| 久久精品免费| 国产欧美日韩激情| 一本久久综合亚洲鲁鲁五月天| 亚洲国产精品99| 人人爽久久涩噜噜噜网站| 精品国产一区二区三区日日嗨 | 9999精品视频| 久久精品国产www456c0m| 国产最新精品精品你懂的| 亚洲精品一二三区| 欧美va亚洲va香蕉在线| 日本亚洲精品在线观看| 一区高清视频| 国产国语老龄妇女a片| 日本在线观看中文字幕| 中文字幕在线观看av| 天堂av免费观看| 另类激情视频| 综合激情婷婷| 欧美激情综合五月色丁香小说| 91精品国产综合久久婷婷香蕉| 久久久人成影片一区二区三区| 日本不卡一二三区| 91人妻一区二区| 中文字幕在线观看视频一区| 黄色的网站免费| 国产乱码在线| 国产精品久久天天影视| 91在线码无精品| 欧美一区二区免费视频| 国产精品久久久久久久久久三级| 无码人妻精品一区二区蜜桃网站| 亚洲成人网在线播放| 超碰福利在线观看| 91九色porny在线| 国产午夜精品一区在线观看| 肉色丝袜一区二区| 亚洲成人一二三| 不卡中文字幕av| 亚洲砖区区免费| 久久久久久久久福利| 香蕉久久国产av一区二区| 在线免费视频福利| 99re8这里有精品热视频免费| 久久99国产乱子伦精品免费| 色欧美88888久久久久久影院| 久久人人爽国产| 久久久久99精品成人片| 国产又黄又爽又无遮挡| 天堂网.www在线资源| 美女91在线看| 亚洲女优在线| 色综合久久天天| 日韩美女在线播放| 日韩免费看片| 久久久综合九色合综国产精品| 日韩欧美激情在线| 亚洲综合中文字幕在线| 日本黄色一级网站| www国产在线| 国产在线播放av| 精品国产一区二区三区噜噜噜 | 五月天婷婷视频| 国产视频第一页在线观看| 欧美一区二区三区激情视频| 国产精品久久久久久一区二区三区| 色99之美女主播在线视频| 伊人色综合影院| 日本一级淫片色费放| 制服影音先锋| xvideos.蜜桃一区二区| wwwwxxxxx欧美| 日韩在线视频二区| 国产av熟女一区二区三区| 亚洲第一在线播放| 人妻久久一区二区| 国产成人亚洲综合小说区| 最新日韩三级| 丁香一区二区三区| 一本色道久久88亚洲综合88| 公共露出暴露狂另类av| 圆产精品久久久久久久久久久| 快播av资源| 国产永久精品大片wwwapp| 国产精品成人午夜| 欧美一区二区.| 四虎国产精品免费| 欧美一级手机免费观看片| 日韩和的一区二在线| 成人美女在线观看| 另类色图亚洲色图| 亚洲免费av一区二区三区| 丰满大乳国产精品| av日韩国产| 国产经典欧美精品| 在线观看视频亚洲| 男人用嘴添女人下身免费视频| 亚洲综合网av| 日本动漫理论片在线观看网站| 日韩av电影一区| 日韩精品亚洲元码| 大伊香蕉精品视频在线| 999av视频| ****av在线网毛片| 99久久99久久久精品齐齐| 欧美另类极品videosbestfree| 欧美精品久久久久久久久25p| 久草免费资源| 日韩成人免费av| ●精品国产综合乱码久久久久| 国产免费亚洲高清| 久久日免费视频| 国产视频一二区| 综合在线视频| 日韩欧美成人午夜| 国产情侣第一页| 日韩在线观看视频网站| 国模视频一区| 国产精品情趣视频| 成人伊人精品色xxxx视频| 国产真实乱在线更新| 污视频网站在线免费观看| 免费日韩视频| 色妞欧美日韩在线| 久久久福利影院| 青青草免费观看完整版高清| 欧洲专线二区三区| 制服丝袜亚洲精品中文字幕| 日本黄xxxxxxxxx100| 蜜臀av中文字幕| 99久久久成人国产精品| 亚洲午夜久久久久| 久久精品午夜一区二区福利| 最近中文字幕在线免费观看| 亚洲天堂电影| 亚洲欧洲美洲综合色网| 国产一区精品视频| 亚洲一区二区色| 日韩网站中文字幕| 国产精品mm| 337p粉嫩大胆色噜噜噜噜亚洲| 91国产在线精品| 亚洲精品午夜视频| 黄页网址大全在线播放| 天堂久久久久va久久久久| 北条麻妃久久精品| 国产精品入口麻豆| 中文字幕在线第一页| 久久国内精品自在自线400部| 欧美猛交ⅹxxx乱大交视频| 熟女俱乐部一区二区| 中文字幕第12页| 久久国产欧美日韩精品| 欧美一级片免费在线| 国产在线拍揄自揄拍| a级片免费在线观看| 欧美日本一区| 亚洲精品97久久久babes| 亚洲影院在线| 欧美日本亚洲视频| 日韩视频在线观看免费视频| 天堂v视频永久在线播放| 国产一区二区三区久久久| 国产精品成久久久久三级| 久久精品久久国产| 97久久综合精品久久久综合| 韩国日本一区| 欧美极品aⅴ影院| 国产一区二区视频在线免费观看| 中文字幕一区二区人妻| 日韩欧美三区| 欧美人妖巨大在线| 天天插天天操天天射| 天天插天天操| 免费观看在线综合色| 日本中文字幕成人| 国产黄色免费视频| 亚洲视频国产| 精品久久久久av影院| 国产日韩视频一区| 污污软件在线观看| 国产欧美精品一区| 午夜精品亚洲一区二区三区嫩草| 中文字幕第八页| 中文字幕激情视频| 精品久久亚洲| 日韩一区二区三区观看| 亚洲一区二区在线视频观看| 濑亚美莉一二区在线视频| 91色在线porny| 五月天久久狠狠| 又黄又湿又爽又免费又色| 老司机亚洲精品| 91精品久久久久久久久久久久久久 | 国产午夜精品无码一区二区| 色是在线视频| 欧美日韩国产色站一区二区三区| 亚洲热在线视频| 香蕉视频在线看| 亚洲成a人片综合在线| 无遮挡又爽又刺激的视频| 久久久亚洲精华液精华液精华液| 国产欧美日韩中文久久| 丝袜人妻一区二区三区| 黄网在线播放| 国产欧美精品在线观看| 久久综合九色综合88i| 亚洲人成电影| 亚洲一区国产视频| 午夜两性免费视频| 日本三级在线视频| 欧美私模裸体表演在线观看| 人妻体内射精一区二区三区| 国产不卡人人| 亚洲аv电影天堂网| 成人在线观看小视频| 无码国模国产在线观看| www.久久撸.com| 凹凸精品一区二区三区| 久久亚洲影视| 国产美女搞久久| 国产又猛又黄又爽| 丁香另类激情小说| 污网站在线播放| 成人免费看视频| 亚洲国产精品一区二区第一页| 国产在线观看色| 久久国产婷婷国产香蕉| 欧美男人的天堂| 黄漫在线播放| 99re亚洲国产精品| 17c丨国产丨精品视频| 导航福利在线| 亚洲综合色网站| 性生交大片免费看l| 亚洲伊人av| 亚洲美女性视频| 一级片在线免费播放| 欧美在线看片| 国产偷国产偷亚洲高清97cao| 大黑人xxx| 亚洲欧洲av在线| 一级黄色电影片| 久久91超碰青草在哪里看| 日韩视频免费看| 狠狠躁夜夜躁av无码中文幕| 久久精品首页| avove在线观看| jizz在线观看中文| 日韩欧美一级二级三级| 国产香蕉视频在线| 欧美日本一区二区视频在线观看| 国产女主播一区二区| www.成人精品免费网站青椒| 精品国产成人av| 国产wwwwxxxx| 青草国产精品| 99久久国产免费免费| 色视频网站在线| 亚洲一区二区三区在线看| 男操女免费网站| 乱插在线www| 亚洲国产精品福利| 最近中文字幕无免费| 刘玥91精选国产在线观看| 国产精品毛片一区二区三区| 欧美午夜视频一区二区| 久久久久亚洲AV成人无在| 欧美精品国产白浆久久久久| 国产999精品久久久影片官网| 国精品日韩欧美一区二区三区| 国产日韩欧美一区二区三区综合| 日本免费色视频| 精品国产美女a久久9999| 97视频在线观看亚洲| 91直播在线观看| 一个色综合av| 91嫩草丨国产丨精品|