OpenEdv-开源电子网

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

无操作系统时,使用emWin需要注意哪些?

[复制链接]

25

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
297
金钱
297
注册时间
2016-6-2
在线时间
49 小时
发表于 2016-9-27 06:04:22 | 显示全部楼层 |阅读模式
1金钱
没有使用操作系统,单独跑emWin,需要注意啥?

本人目前在使用SD时,老是有问题,找不到原因。

最佳答案

查看完整内容[请看2#楼]

问题已解决。 请参看 http://www.openedv.com/thread-84894-1-1.html
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

25

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
297
金钱
297
注册时间
2016-6-2
在线时间
49 小时
 楼主| 发表于 2016-9-27 06:04:23 | 显示全部楼层
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-9-27 10:02:16 | 显示全部楼层
有问题就一步一步的调试,看看是哪里的问题
回复

使用道具 举报

25

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
297
金钱
297
注册时间
2016-6-2
在线时间
49 小时
 楼主| 发表于 2016-9-27 16:43:48 | 显示全部楼层
zuozhongkai 发表于 2016-9-27 10:02
有问题就一步一步的调试,看看是哪里的问题

首先delay_ms完全不好用,delay_ms(1000)跑得特别快。
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-9-27 17:13:59 | 显示全部楼层
lancker 发表于 2016-9-27 16:43
首先delay_ms完全不好用,delay_ms(1000)跑得特别快。

用的什么板子的?
开往春天的手扶拖拉机
回复

使用道具 举报

25

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
297
金钱
297
注册时间
2016-6-2
在线时间
49 小时
 楼主| 发表于 2016-9-27 17:31:57 | 显示全部楼层
zuozhongkai 发表于 2016-9-27 17:13
用的什么板子的?

基于mini板子,升级芯片到STM32F103RE.

没有是用UCOSIII, 只上emWin. 主要是实现专业的界面。

之前没上emWin,很多功能都开发好了。移植emWin以后,遇到很多问题。

发现很多例子都是UCOSIII + emWin的。
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-9-27 17:54:46 | 显示全部楼层
lancker 发表于 2016-9-27 17:31
基于mini板子,升级芯片到STM32F103RE.

没有是用UCOSIII, 只上emWin. 主要是实现专业的界面。

仔细看delay_ms()函数的参数要求!
开往春天的手扶拖拉机
回复

使用道具 举报

25

主题

96

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
297
金钱
297
注册时间
2016-6-2
在线时间
49 小时
 楼主| 发表于 2016-9-27 20:55:45 | 显示全部楼层
zuozhongkai 发表于 2016-9-27 17:54
仔细看delay_ms()函数的参数要求!

        TIM3_Int_Init(999,71);        //1KHZ 定时器1ms
        TIM6_Int_Init(999,719);        //10ms中断
这两个定时器设定前调用check_SD(),一切正常。
这两个定时器设定后调用check_SD(),马上有问题。

int main(void)
{                                 
        u8 i;
        delay_init();                    //延时函数初始化         
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
        //uart1_init(9600);                 //串口初始化为9600
        uart2_init(9600);                 //串口初始化为9600
         LED_Init();                            //LED端口初始化
        TFTLCD_Init();                        //LCD初始化        
        KEY_Init();                                 //按键初始化
         TP_Init();                                //触摸屏初始化
        exfuns_init();
        
        for(i=0; i<10;i++)
        {
                check_SD();
                LCD_ShowNum(60,200,i,2,16);
                delay_ms(1000);
                LCD_ShowString(60,200,100,16,16,"      ");
        }
        
        TIM3_Int_Init(999,71);        //1KHZ 定时器1ms
        TIM6_Int_Init(999,719);        //10ms中断
  
                for(i=0; i<10;i++)
        {
                check_SD();
                LCD_ShowNum(60,200,i,2,16);     
                delay_ms(1000);
                LCD_ShowString(60,200,100,16,16,"      ");
        }
   。。。。。
}

unsigned int check_SD(void)
{
                u32 total,free;
          u8 i, flag=0;
          i=10;
          LCD_Clear(WHITE);
                while(i)                                        //检测SD卡
        {
                if(SD_Initialize())
                {
                LCD_ShowString(30,180,200,16,16,"SD Card Error!");
                delay_ms(500);
                LCD_Fill(30,180,240,150+16,GRAY);//清除显示                          
                delay_ms(100);
                LED_B=1;
                LED_R=!LED_R;//DS0闪烁
                i--;
                flag=1;
                }
                else
                        i=0;
        }               
        if(flag!=0) return flag;
         exfuns_init();                                                        //为fatfs相关变量申请内存               
        f_mount(fs[0],"0:",1);                                         //挂载SD卡
         //f_mount(fs[1],"1:",1);                                         //挂载FLASH.        
  i=5;
        
        while(i)        //得到SD卡的总容量和剩余容量
        {
                if(exf_getfree("0",&total,&free))
                {
                LCD_ShowString(30,180,200,16,16,"Fatfs Error!");
                delay_ms(200);
                LCD_Fill(60,180,240,150+16,WHITE);//清除显示                          
                delay_ms(200);
                LED_B=1;
                LED_R=!LED_R;
                flag=2;
                }
                else
                        i=0;
        }                                
  if(flag!=0)
        {LED_B=1;LED_R=0;return flag;        }
        else
        {
         POINT_COLOR=BLUE;//设置字体为蓝色           
//        LCD_ShowString(60,150,200,16,16,"FATFS OK!");         
//        LCD_ShowString(60,170,200,16,16,"SD Total Size:     MB");         
        LCD_ShowString(30,180,200,16,16,"SD Test Ok. Free Size:     MB");            
//        LCD_ShowNum(172,170,total>>10,5,16);                                        //显示SD卡总容量 MB
         LCD_ShowNum(220,180,free>>10,5,16);                                                //显示SD卡剩余容量 MB               
        delay_ms(200);
        delay_ms(200);
        return flag;
        }
        
}
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-4 16:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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