基于GD32微控制器的段码显示器

[复制链接]
3878|16
 楼主| reayfei 发表于 2013-9-3 20:42 | 显示全部楼层 |阅读模式
本帖最后由 reayfei 于 2013-9-3 21:03 编辑

说明一下:选用了IIC驱动方式,硬件连接SCL、SDAIN和SDAOUT引脚,
          也就是说有应答检测是从SDAOUT引脚返回给MCU的。
硬件平台:微控制器选择GD32F103
          PCA8538评估板
          红外遥控器
IMG_20130903_192116.jpg

并使用红外遥控器进行控制

IMG_20130903_190621.jpg

锐鑫同创提供的示例十分丰富,注释清晰,移植太方便了。
IIC,RTC,DS18B20等驱动完全都不用改,项目完成很顺利。

IMG_20130903_191917.jpg

核心代码部分分析:
主循环里 if(now!=timer.sec){}中每秒进行温度和时间更新。
         if(Remote_Rdy){}检测遥控器发出的指令并执行。
         PCA8538_TIME();参数较多,大家可以详细看一下,实现温度和时间同时显示,有点复杂
        (相对于寄存器“冲突”情况)
    while(1)
    {
        if(POWER_flag == 1)
        {
            if(now!=timer.sec)
            {
                now=timer.sec;
                temp = DS18B20_Get_Temp();
                printf("t1:%d\n",temp);
                temp_high = (temp/100);
                temp_low  = (temp/10-(temp/100*10));
                PCA8538_TIME(temp_high,temp_low,timer.hour/10,timer.hour%10,timer.min/10,timer.min%10);
                LED0 = !LED0;
            }
        }               
        if(Remote_Rdy)
        {
            key=Remote_Process();  
            switch(key)
            {
                case BUTTON_POWER:
                         PCA8538_POWER();
                         POWER_flag=1;
                         ice_num=0;
                         break;
               case BUTTON_1:
                         if(flag == 0)
                         {
                         PCA8538_AUTO(1);
                         flag = 1;
                         }
                         else
                         {
                         PCA8538_AUTO(0);
                         flag = 0;
                         }
                         break;
                case BUTTON_2:
                         ice_num++;
                         if(ice_num>=4)
                         {
                             ice_num=1;
                         }
                         PCA8538_NUM(ice_num);
                         break;
                 case BUTTON_3:
                         if(flag_light == 0)
                         {
                         PCA8538_LIGHT(1);
                         flag_light = 1;
                         }
                         else
                         {
                         PCA8538_LIGHT(0);
                         flag_light = 0;
                         }
                        break;
                case BUTTON_4:
                         PCA8538_CLEAR();
                         POWER_flag=0;
                         break;
                default:
                         break;      
            }
        }
    }


基于GD32智能显示器V4.5.rar

4.14 MB, 下载次数: 77

永远的不知 发表于 2013-9-5 18:40 | 显示全部楼层
支持穿裤子。
 楼主| reayfei 发表于 2013-9-5 22:33 | 显示全部楼层
永远的不知 发表于 2013-9-5 18:40
支持穿裤子。

谢谢您的支持:)
luohao316 发表于 2013-9-10 12:08 | 显示全部楼层
这个GD32是不是就是STM32呀?
 楼主| reayfei 发表于 2013-9-10 15:54 | 显示全部楼层
luohao316 发表于 2013-9-10 12:08
这个GD32是不是就是STM32呀?

GD32是国产哦!
blackrui 发表于 2013-9-10 16:48 | 显示全部楼层
luohao316 发表于 2013-9-10 12:08
这个GD32是不是就是STM32呀?

这是两个品牌,只是GD32可以兼容STM32.
jack888518 发表于 2013-9-10 18:01 | 显示全部楼层
不错的应用~
s614857575 发表于 2013-9-19 20:25 | 显示全部楼层
话说这个算不算山寨啊
喵小棋 发表于 2013-10-30 22:18 | 显示全部楼层
支持一下
筱禾1988 发表于 2013-11-27 22:35 | 显示全部楼层
改一下之前的驱动,应该好弄
喵小棋 发表于 2013-11-27 22:48 | 显示全部楼层
直接把ST做过的改过来就好了
zhangjin_comeon 发表于 2013-11-27 23:16 | 显示全部楼层
是啊 直接改改呢
make8419247 发表于 2013-12-3 07:53 | 显示全部楼层
支持支持!!!GD32还是不错的
lixiang1729 发表于 2013-12-21 20:17 | 显示全部楼层
支持一下咯
gongjinhua 发表于 2013-12-22 11:30 | 显示全部楼层
很好的
zhouli09 发表于 2013-12-22 12:02 | 显示全部楼层
界面不好看啊
kfliuyan 发表于 2014-7-29 11:26 | 显示全部楼层
例子收藏了,有用得着的时候
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:WiFi包邮:http://item.taobao.com/item.htm?id=19254130983

15

主题

395

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部