在测试易码魔盒的时候,看到里面有一个系统用户工程驱动列表,里面包含一个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);
-
-
- }
源代码就不上传了,完全是易码魔盒生成的。
|