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

📄 main.c

📁 I2C 2 UART C51 I2C 2 UART C51
💻 C
字号:
#include "def.h"
#include "vk33.h"

//在各种方式中,main.c函数和vk32.h是通用的def.h在spi和parallel方式是通用的
//uart模式下多了两个批量读写fifo的函数;底层函数是不一样的
void delay (unsigned int delaydata)
{
    unsigned int tempdata=delaydata;
	while(tempdata)
	{
	tempdata=tempdata-1;	
	}
}


void Init_led(void)
{
    unsigned int tempdata=0x0ffff;

    CH4_LED = 0;
    CH3_LED = 0;
    CH2_LED = 0;
    CH1_LED = 0;
    PAR_LED = 0;
    SPI_LED = 0;
    UART_LED = 0;
	IIC_LED =0;
	while(tempdata)
	{
	tempdata=tempdata-1;	
	}
	CH4_LED = 1;
	CH3_LED = 1;
	CH2_LED = 1;
	CH1_LED = 1;
	PAR_LED = 1;
	SPI_LED = 1;
    UART_LED = 1;
	IIC_LED = 1;
    tempdata=0x0ffff;
	while(tempdata)
	{
	tempdata=tempdata-1;	
	}
    CH4_LED = 0;
    CH3_LED = 0;
    CH2_LED = 0;
    CH1_LED = 0;
    PAR_LED = 0;
    SPI_LED = 0;
    UART_LED = 0;
	IIC_LED =0;
    tempdata=0x0ffff;
	while(tempdata)
	{
	tempdata=tempdata-1;	
	}
	CH4_LED = 1;
	CH3_LED = 1;
	CH2_LED = 1;
	CH1_LED = 1;
	PAR_LED = 1;
	SPI_LED = 1;
    UART_LED = 1;
    IIC_LED = 1;
    tempdata=0x0ffff;
	while(tempdata)
	{
	tempdata=tempdata-1;	
	}
    CH4_LED = 0;
    CH3_LED = 0;
    CH2_LED = 0;
    CH1_LED = 0;
    PAR_LED = 0;
    SPI_LED = 0;
    UART_LED = 0;
	IIC_LED = 0;
    tempdata=0x0ffff;
	while(tempdata)
	{
	tempdata=tempdata-1;	
	}
}




main()
{
	static unsigned char dat1,dat2,dat3,dat4,m,n;
    unsigned int tmp=0xfff;
    unsigned char err_fla=0,err_flb=0,err_flc=0,err_fld=0;
	n=0;
	m=0;
    //初试化MCU
   	config();
    //初试化LED
    Init_led();  
	//初始化VK;
	config_vkxx(); 
    //主串口测试;亮起UART-LED
	CH4_LED = 1;
	CH3_LED = 1;
	CH2_LED = 1;
	CH1_LED = 1;
	PAR_LED = 1;
	SPI_LED = 1;
    UART_LED = 0;
	IIC_LED = 1;

	while(1)
	{
	//写出数据分别到4个子UART
		write_reg(1,SFDR,m);
		write_reg(2,SFDR,m);
		write_reg(3,SFDR,m);
		write_reg(4,SFDR,m);
    //延迟后读取FIFO数据
		delay(0x8ff);
		delay(0x8ff);         
		dat1=read_reg(1,SFDR);
		dat2=read_reg(2,SFDR);
		dat3=read_reg(3,SFDR);
		dat4=read_reg(4,SFDR); 
		//delay(0x8ff);
		//delay(0x8ff);  
    //比较读回的数据是否为发出的数据后设置LED的状态。
       if(dat1==m)
         CH1_LED =0;
       else             
         err_fla =1;
       if(dat2==m)
         CH2_LED =0;
       else
         err_flb =1;
       if(dat3==m)
         CH3_LED =0;
       else
         err_flc =1;
       if(dat4==m)
         CH4_LED =0;
       else
         err_fld =1;

    //*********************************************
    //如果有一次不等将熄灭灯
		
		if(err_fla==1)             
	  	 CH1_LED =1;
		if(err_flb==1)
		 CH2_LED =1;
		if(err_flc==1)
		 CH3_LED =1;
		if(err_fld==1)
		 CH4_LED =1;
     m=m+1;
     if(m==255)
       m=0;
   }
}

⌨️ 快捷键说明

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