打印
[易码魔盒]

【新定义MCU开发板测评】易码魔盒测试之DS1302

[复制链接]
220|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
51xlf|  楼主 | 2022-12-3 20:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在测试易码魔盒的时候,看到里面有一个系统用户工程驱动列表,里面包含一个DS1302的程序。
手上正好有一个DS1302模块,测试一下这个功能是否好用。

建立工程文件的方式就不在赘述了。
这里直接配置DS1302的模块。
在对话框中选择上DS1302

点击这个模块,配置引脚

因为没有屏幕,所以只能是使用串口输出这个时钟信号了。波特率配置为115200.

点击生成工程文件。
如果串口不能正常工作,修改这个串口初始化代码。
 GPIO_Init(GPIO1, GPIO_PIN_1,GPIO_MODE_IN_PU);
        GPIO_Init(GPIO1, GPIO_PIN_3,GPIO_MODE_IN_PU);
        USCI1_ITConfig(DISABLE,LOW);
        USCI1_UART_Init(32000000,115200,USCI1_UART_Mode_10B,USCI1_UART_RX_ENABLE);
不知道为什么配置生成的代码,存在没有初始化。
SC_Init(); /*** MCU init***/
这里是读取DS1302和串口发送的情况。
        /*<UserCodeStart>*//*<SinOne-Tag><1428>*/
        Calender.year=SCD_DS1302_Read_Time(year);
        /*<UserCodeEnd>*//*<SinOne-Tag><1428>*/
        /*<UserCodeStart>*//*<SinOne-Tag><1561>*/
        Calender.month=SCD_DS1302_Read_Time(month);
        /*<UserCodeEnd>*//*<SinOne-Tag><1561>*/
        /*<UserCodeStart>*//*<SinOne-Tag><1576>*/
        Calender.day=SCD_DS1302_Read_Time(day);
        /*<UserCodeEnd>*//*<SinOne-Tag><1576>*/
        /*<UserCodeStart>*//*<SinOne-Tag><1577>*/
        hou=SCD_DS1302_Read_Time(hour);
        /*<UserCodeEnd>*//*<SinOne-Tag><1577>*/
        /*<UserCodeStart>*//*<SinOne-Tag><1586>*/
        min=SCD_DS1302_Read_Time(minute);
        /*<UserCodeEnd>*//*<SinOne-Tag><1586>*/
        /*<UserCodeStart>*//*<SinOne-Tag><1585>*/
        sec=SCD_DS1302_Read_Time(second);
        /*<UserCodeEnd>*//*<SinOne-Tag><1585>*/
        /*<UserCodeStart>*//*<SinOne-Tag><1587>*/
        Calender.weekday=SCD_DS1302_Read_Time(week);
        /*<UserCodeEnd>*//*<SinOne-Tag><1587>*/
        /*<UserCodeStart>*//*<SinOne-Tag><1480>*/

                                send_one(hou/10+'0');
                                send_one(hou%10+'0');
                                send_one(':');
                                send_one(min/10+'0');
                                send_one(min%10+'0');
                                send_one(':');
                                send_one(sec/10+'0');
                                send_one(sec%10+'0');
                                send_one('\r');
                                send_one('\n');
                                delay(1000);
在串口上输出的数据。


串口的发送代码
void send_one(char c)
        {
        USCI1_UART_SendData8(c);
        while(!USCI1_GetFlagStatus(USCI1_UART_FLAG_TI));
        USCI1_ClearFlag(USCI1_UART_FLAG_TI);
       

}
源代码就不上传了,完全是易码魔盒生成的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

531

主题

9335

帖子

19

粉丝