OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2659|回复: 1

出现了错误怎么解决

[复制链接]

3

主题

4

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-4-24
在线时间
4 小时
发表于 2016-4-30 13:56:46 | 显示全部楼层 |阅读模式

..\List\UP_ADC.axf: Error: L6218E: Undefined symbol UP_Bluetooth_SetHadler (referred from main.o).
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\750159353\QQ\WinTemp\RichOle\1H2MU4B]0IT}O5N0D01R4D9.png

程序如下:

#include "UPLib\\UP_System.h"

u32 g_count = 0;                 //记录外部中断发生次数的全局参数

/*定义外部中断入口函数*/
void ExtiHadler(u32 extichannel)
{
        if(extichannel == EXTI_OK)                 //判断是哪一路中断
        {
                g_count++;                                                        //计数值加1
                UP_LCD_ClearLine(0);                                //清除屏幕第一行(这里不用清屏是因为清屏函数会消耗较多时间)
                UP_LCD_ShowString(0,0,"EXTI_OK");        //在第一行显示是哪一路中断
                UP_LCD_ClearLine(1);                                //清除屏幕第二行
                UP_LCD_ShowInt(0,1,g_count);                //在第二行显示进入中断的次数
        }
        else if(extichannel == EXTI_BACK)                 //判断是哪一路中断
        {
                g_count++;                                                        //计数值加1
                UP_LCD_ClearLine(0);                                //清除屏幕第一行(这里不用清屏是因为清屏函数会消耗较多时间)
                UP_LCD_ShowString(0,0,"EXTI_BACK");        //在第一行显示是哪一路中断
                UP_LCD_ClearLine(1);                                //清除屏幕第二行
                UP_LCD_ShowInt(0,1,g_count);                //在第二行显示进入中断的次数
        }
        else if(extichannel == EXTI_DOWN)                 //判断是哪一路中断
        {
                g_count++;                                                        //计数值加1
                UP_LCD_ClearLine(0);                                //清除屏幕第一行(这里不用清屏是因为清屏函数会消耗较多时间)
                UP_LCD_ShowString(0,0,"EXTI_DOWN");        //在第一行显示是哪一路中断
                UP_LCD_ClearLine(1);                                //清除屏幕第二行
                UP_LCD_ShowInt(0,1,g_count);                //在第二行显示进入中断的次数
        }
        else if(extichannel == EXTI_UP)                 //判断是哪一路中断
        {
                g_count++;                                                        //计数值加1
                UP_LCD_ClearLine(0);                                //清除屏幕第一行(这里不用清屏是因为清屏函数会消耗较多时间)
                UP_LCD_ShowString(0,0,"EXTI_UP");        //在第一行显示是哪一路中断
                UP_LCD_ClearLine(1);                                //清除屏幕第二行
                UP_LCD_ShowInt(0,1,g_count);                //在第二行显示进入中断的次数
        }
        else if(extichannel == EXTI_AD4)
        {
                g_count++;
                UP_LCD_ClearLine(0);
                UP_LCD_ShowString(0,0,"EXTI_AD4");
                UP_LCD_ClearLine(1);
                UP_LCD_ShowInt(0,1,g_count);
        }
}

/*主函数*/
int main(void)
{
        /*外部中断的初始化(必须放在系统初始化函数的前面)*/
        UP_Exti_EnableIT(EXTI_OK, EXTI_Trigger_Falling);                //设置OK键为下降沿触发中断
        UP_Exti_EnableIT(EXTI_BACK, EXTI_Trigger_Falling);                //设置OK键为下降沿触发中断
        UP_Exti_EnableIT(EXTI_UP, EXTI_Trigger_Falling);                //设置OK键为下降沿触发中断
        UP_Exti_EnableIT(EXTI_DOWN, EXTI_Trigger_Falling);                //设置OK键为下降沿触发中断
        UP_Exti_EnableIT(EXTI_AD4, EXTI_Trigger_Rising_Falling);//设置AD4为上升&下降沿触发中断
        UP_Exti_SetHadler(ExtiHadler);                                                        //传递外部中断入口函数指针

        /*初始化系统*/
        UP_System_Init();
       
        printf("    Demo7 EXTI\n");        //显示Demo名称
        UP_LCD_ShowCharacterString(0,1,"    博创科技");                                        //显示汉字字符串LOGO
        UP_LCD_ShowCharacterString(0,2,"卓越之星创意套件");                        //显示汉字字符串LOGO
        UP_delay_ms(2000);                                         //延时2s   
        UP_LCD_ClearScreen();                         //清屏

        printf("Ready!\n");       

        /*进入While(1)死循环*/       
        while(1)
        {
        }         
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

4

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2016-4-24
在线时间
4 小时
 楼主| 发表于 2016-4-30 13:59:31 | 显示全部楼层
#include "UPLib\\UP_System.h"  u32 g_count = 0; void BluetoothHadler(u32 Bluetoothchannel)  {if(Bluetoothchannel == 1)                 //判断是哪一路中断         {                 g_count++;                                                        //计数值加1                 UP_LCD_ClearLine(0);                                //清除屏幕第一行(这里不用清屏是因为清屏函数会消耗较多时间)                 UP_LCD_ShowString(0,0,"1");        //在第一行显示是哪一路中断                 UP_LCD_ClearLine(1);                                //清除屏幕第二行                 UP_LCD_ShowInt(0,1,g_count);                //在第二行显示进入中断的次数                                  UP_CDS_SetMode(1, CDS_MOTOMODE);                 UP_CDS_SetSpeed(1, 800);         }                 else if(Bluetoothchannel == 2)                 //判断是哪一路中断         {                 g_count++;                                                        //计数值加1                 UP_LCD_ClearLine(0);                                //清除屏幕第一行(这里不用清屏是因为清屏函数会消耗较多时间)                 UP_LCD_ShowString(0,0,"2");        //在第一行显示是哪一路中断                 UP_LCD_ClearLine(1);                                //清除屏幕第二行                 UP_LCD_ShowInt(0,1,g_count);                //在第二行显示进入中断的次数                  UP_CDS_SetMode(2, CDS_MOTOMODE);                 UP_CDS_SetSpeed(2, -800);         }         } //主函数 int main(void) {           UP_Bluetooth_EnableIT();        UP_Bluetooth_SetHadler(BluetoothHadler);                       /*初始化系统*/         UP_System_Init();         while(1)                                                                 {         }          }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-10 00:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表