[ufun学习] UFUN初步程序调试及备注

qwerghf   2016-7-26 00:09 楼主
最近项目忙,只有晚上才能测评一下UFUN了,先给新手带来程序调试结果和备注,程序有不懂的可以提问,我会看到后回复大家。

插入SD卡测试结果:
LIS3DH Init is succeed!
External Reset occurred....
No need to configure RTC....
ManufacturerID:0x3
OEM_appliID:0x5344
ProductName:SU02G
ProductVersion:        80
ProductSerialNumber:b897ef
ManufactureDate:09-8
CID_CRC:17
CSD Structure Version:1
发现SD卡!
Current Time: 00:02:21
X=227, Y=-71, Z=-1045
The AD_SIG1 value is: 15
The AD_SIG2 value is: 14

未插入SD卡测试结果:
LIS3DH Init is succeed!
External Reset occurred....
No need to configure RTC....
没有发现 SD 卡设备!
Current Time: 00:05:08
X=222, Y=-60, Z=-1027
The AD_SIG1 value is: 15
The AD_SIG2 value is: 14

主程序分析:

/**************************************************************/
//程 序 名: main()
//开 发 者: MingH
//入口参数: 无
//功能说明: 主函数
//**************************************************************/
int main(void)
{
    unsigned char err_code;
    RCC_Config();//时钟初始化配置,配置系统时钟72M.
    Beep_Init(); //蜂鸣器初始化配置,配置定时器1来控制蜂鸣器发声,开启蜂鸣器
    Touch_Init();//触摸按键初始化,设置为浮空输入
    Pcie_Gpio_Init();//Pcie的IO配置为推挽输出
    Tim3_Init();//定时器3初始化,配置中断优先级分组为0组,抢占优先级0,响应优先级2

    RGB_Init();//RGB初始化,配置定时器2的通道ch1、ch2、ch3控制RGB
    RCC_GetClocksFreq(&RCC_ClockFreq);//获取系统时钟
    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);//配置SysTick时钟
    USB2Serial_Init();//串口1初始化配置,配置波特率115200
    Pwm_Init();//配置定时器4的通道ch1和ch2输出pwm波形
    Adc_Init();//ADC初始化,开启DMA传输采集AD转化值
    I2C_GPIO_Configuration();//I2C的IO初始化为开漏输出
    err_code = LIS3DH_Init();//初始化LIS3DH,初始化成功返回NO_ERROR
    if (NO_ERROR == err_code)//判断LIS3DH初始化是否成功
    {
        printf("\r\nLIS3DH Init is succeed! \r\n");//打印成功信息
    }
    else
    {
        printf("\r\nLIS3DH Init is failed! \r\n");//打印失败信息
    }

    RTC_Init();// RTC 初始化配置

    if(SD_Init() == SD_OK)//SD初始化,成功返回SD_OK
    {
        printf ("\r\n发现SD卡!\r\n");//打印SD卡成功信息
    }
    else
    {
        printf("\r\n没有发现 SD 卡设备! \r\n");//打印SD卡失败信息
    }
    printf("\r\n\r\n");//回车换行
    save_sd_detect = SD_Detect(); //初始化SD卡插入状态,检查SD卡是插入
    SysTick_Delay_ms(500);//延时500ms
    TIM_Cmd(TIM1, DISABLE);//关闭定时器1,蜂鸣器关闭
    TIM_CtrlPWMOutputs(TIM1, DISABLE);//关闭定时器1输出
    while (1)
    {
        if(read_sd_detect_flag)//读取SD插入状态
        {
            if (save_sd_detect != SD_Detect())//检测SD卡状态变化
            {
                /* 蜂鸣器响 */
                TIM_Cmd(TIM1, ENABLE);//开启定时器1
                TIM_CtrlPWMOutputs(TIM1, ENABLE);//使能定时器1输出
                sd_detect_change = 1; //SD卡插入状态有变
                buzzer_delay = 0;//蜂鸣器延时清零
                if (SD_Detect() != SD_NOT_PRESENT)//判断SD卡是否插入
                {
                    if(SD_Init() == SD_OK)//初始化SD卡
                    {
                        printf ("\r\n发现SD卡!\r\n");//打印SD卡成功信息
                    }
                    else
                    {
                        printf("\r\n没有发现 SD 卡设备! \r\n");//打印SD卡失败信息
                    }
                    printf("\r\n\r\n");//回车换行
                    save_sd_detect = SD_Detect(); //初始化SD卡插入状态
                }
            }
            save_sd_detect = SD_Detect();//保存SD卡插入状态
            read_sd_detect_flag = 0;//清除SD读取标志
        }
        Time_Show();//打印时间
        Test_Pcie_Gpio();//Pcie高低电平变化
        Touch_Key_Proc();//触摸按键读取,如果按下,点亮LED,否则关闭LED

        if (read_lis3dh_flag)//读取Lis3dh数据标志判断
        {
            Collect_Data(ACCdata);//读取Lis3dh数据
            for (i=0; i<3; i++)//Lis3dh数据处理
            {
                if (oldACCdata < ACCdata)
                {
                    ACCdiff = ACCdata - oldACCdata;
                }
                else
                {
                    ACCdiff = oldACCdata - ACCdata;
                }
            }
            RGB_Control(ACCdiff[0]<<2, ACCdiff[1]<<2, ACCdiff[2]<<2);//Lis3dh数据控制RGB亮度
            for (i=0; i<3; i++)//保持Lis3dh数据
            {
                oldACCdata = ACCdata;
            }
            read_lis3dh_flag = 0;//清除Lis3dh读取标志
        }
        if (one_second_flag)//秒标志判断
        {
            printf("X=%d, Y=%d, Z=%d\r\n\r\n", ACCdata[1], ACCdata[0], ACCdata[2]);//打印Lis3dh数据
            Adc_Proc();//Adc处理函数,打印AD值
            one_second_flag = 0;//清除秒标志
        }
    }
}



回复评论 (1)

备注很容易明白,谢谢~~
点赞  2016-8-18 20:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复