⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 基于CORTEX-M3内核的I2C总线的应用
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.embedtools.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name:          Main.c
** Last modified Date: 2008.01.21
** Last Version:       v1.0
** Description:        LCD液晶屏显示实验
** 
**------------------------------------------------------------------------------------------------------
** Created By:         Kang qinhua
** Created date:       2008.01.21
** Version:            v1.0
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:        
** Modified date:      
** Version:            
** Description:
**
********************************************************************************************************/
#include "hw_memmap.h"
#include "hw_ints.h"
#include "hw_types.h"
#include "hw_i2c.h"
#include "gpio.h"
#include "sysctl.h"
#include "i2c.h"
#include "interrupt.h"

#include "I2CINT.H"


#define BUZZER  GPIO_PIN_5                                        // 数据判断的LED指示。


int main(void)
{
    unsigned char   WDATA[5] = {0xAA,0x55,0xAA,0x55,0xAA};	                //主机向24C64写入的数据
    unsigned char   RDATA[5];			                                //主机从24C64读出的数据
    unsigned  long  ulIdx;
    // 设置晶振为系统时钟
    SysCtlClockSet(SYSCTL_SYSDIV_1 |
                   SYSCTL_USE_PLL  |
                   SYSCTL_OSC_MAIN |
                   SYSCTL_XTAL_6MHZ);
    
    // 使能本例所使用的外设。
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    GPIODirModeSet(GPIO_PORTA_BASE, BUZZER, GPIO_DIR_MODE_OUT);
    
    I2CInit(400000, 1); 						// 初始化I2C驱动
    
    while(1)                                                            // 将一串数据写入EEPROM的前8个字节。
    {
	ISendStr(0xA0, 0x00, 1, WDATA, 5);                               // 向24C02中写入数据
	Delays(5);                                                          // 等待主机向24C02中写入数据延时。
	IRcvStr(0xA0, 0x00, 1, RDATA, 5);                                 // 从24C02中读出数据
	Delays(5);                                                          // 等待主机从24C02中读出数据延时。
        for(ulIdx = 0; ulIdx < 5; ulIdx++)
        {
       	  // 判断接收到的数据是否正确.
          if(WDATA[ulIdx] != RDATA[ulIdx])
          {
               //如果接收的数据出错,则点亮LED1指示.
              GPIOPinWrite(GPIO_PORTA_BASE,BUZZER,~BUZZER);
              while(1);
          }
        }
        // 如果接收到的数据正确,则点亮LED2指示.
        GPIOPinWrite(GPIO_PORTA_BASE,BUZZER,~BUZZER);
        Delays(3);	
        GPIOPinWrite(GPIO_PORTA_BASE,BUZZER,BUZZER);
        while(1);
    }
    	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -