[活动专区] 【AT-START-L021测评】时钟日历从串口发出

[复制链接]
7230|37
 楼主| dami 发表于 2025-1-4 20:25 | 显示全部楼层 |阅读模式
                 【AT-START-L021测评】时钟日历从串口发出


1,打开原来串口通信的项目里面加入rtc时钟
71857677927941ad5d.png
2,生成代码。里面包括下面文件
4063067792835e67e8.png
3,主程序中加入如下代码
  1. int main(void)
  2. {
  3.   /* add user code begin 1 */
  4.   ertc_time_type time;
  5.         uint32_t temp = 0;
  6.   /* add user code end 1 */

  7.   /* system clock config. */
  8.   wk_system_clock_config();

  9.   /* config periph clock. */
  10.   wk_periph_clock_config();

  11.   /* nvic config. */
  12.   wk_nvic_config();

  13.   /* timebase config. */
  14.   wk_timebase_init();

  15.   /* init usart1 function. */
  16.   wk_usart1_init();

  17.   /* init ertc function. */
  18.   wk_ertc_init();

  19.   /* init gpio function. */
  20.   wk_gpio_config();

  21.   /* add user code begin 2 */
  22.   
  23.   /* add user code end 2 */

  24.   while(1)
  25.   {
  26.     /* add user code begin 3 */
  27.                 //if((usart1_rx_counter>=4)&&(usart1_rx_buffer[0]=='s')&&(usart1_rx_buffer[1]=='e')&&(usart1_rx_buffer[2]=='n')&&(usart1_rx_buffer[3]=='d'))
  28.                 {       
  29.                                 int i =0;
  30.                           
  31.                                
  32.                                 gpio_bits_reset(led4_GPIO_PORT, led4_PIN);
  33.                                 gpio_bits_reset(led2_GPIO_PORT, led2_PIN | led3_PIN);
  34.                                 wk_delay_ms(100);//DelayMs(1000);
  35.                
  36.                                 gpio_bits_set(led4_GPIO_PORT, led4_PIN);
  37.                                 gpio_bits_set(led2_GPIO_PORT, led2_PIN | led3_PIN);
  38.                                 wk_delay_ms(100);//DelayMs(1000);
  39.                                 wk_delay_ms(5);
  40.                                 usart1_rx_counter=0;
  41.                           usart1_rx_buffer[0]=0;
  42.                                 usart1_rx_buffer[1]=0;
  43.                                 usart1_rx_buffer[2]=0;
  44.                           usart1_rx_buffer[3]=0;
  45.                                
  46.                                 usart1_tx_counter=0;
  47.                           ertc_calendar_get(&time);
  48.                                 if(temp != time.sec)
  49.                                 {
  50.                                         temp = time.sec;

  51.                                         /* display date format : year-month-day */
  52.                                         sprintf((char *)usart1_tx_buffer,"%02d-%02d-%02d ",time.year, time.month, time.day);
  53.                                         for(i =0;i<9;i++)
  54.                                         {       
  55.                                                 usart_data_transmit(USART1, usart1_tx_buffer[i]);
  56.                                                 wk_delay_ms(2);
  57.                                         }
  58.                                         /* display time format : hour:min:sec */
  59.                                         sprintf((char *)usart1_tx_buffer,"%02d:%02d:%02d",time.hour, time.min, time.sec);
  60.                                         for(i =0;i<8;i++)
  61.                                         {       
  62.                                                 usart_data_transmit(USART1, usart1_tx_buffer[i]);
  63.                                                 wk_delay_ms(2);
  64.                                         }
  65.                                 }
  66.                         }
  67.     /* add user code end 3 */
  68.   }
  69. }
4,测试,发现每秒会有时钟从串口输出。
41855677928acd9901.png





问天少年 发表于 2025-1-7 15:32 | 显示全部楼层
价格显示器显示就更棒了
菜鸟的第一步 发表于 2025-1-9 17:29 | 显示全部楼层
日历的时钟使用的是哪个时钟源
 楼主| dami 发表于 2025-1-10 08:41 | 显示全部楼层
本帖最后由 dami 于 2025-1-10 08:54 编辑
菜鸟的第一步 发表于 2025-1-9 17:29
日历的时钟使用的是哪个时钟源

cpu外接的32.768的那个
5455267806fb081934.png
sdCAD 发表于 2025-2-4 17:28 | 显示全部楼层
通过串口输出时钟日历信息,开发者可以很方便地在开发过程中对时钟日历功能进行调试。
xiaoyaodz 发表于 2025-2-4 18:37 | 显示全部楼层
高精度的时钟日历模块              
hilahope 发表于 2025-2-4 19:45 | 显示全部楼层
设计可以用于智能家居系统中,通过串口将时间信息发送给其他智能家居设备,实现设备间的同步和时间控制。
earlmax 发表于 2025-2-4 22:33 | 显示全部楼层
是否可以通过串口方便地对时钟日历进行初始化设置,如设置初始时间、时区等参数。设置的流程是否简单明了,有没有详细的文档说明。
belindagraham 发表于 2025-2-5 08:06 | 显示全部楼层
是否能准确到秒,并且在长时间运行后是否存在较大的时间偏差。如果是通过网络或其他外部时钟源进行校准,校准机制是否可靠。
wilhelmina2 发表于 2025-2-5 08:38 | 显示全部楼层
丰富的软件支持,包括驱动程序、配置文件和示例代码等
maqianqu 发表于 2025-2-5 11:49 | 显示全部楼层
该设计将时钟日历功能与串口通信相结合,实现了时间的获取和传输,具有较高的集成度。
1988020566 发表于 2025-2-5 12:50 | 显示全部楼层
AT32L021的低功耗特性使得该设计非常适合需要长时间运行且功耗要求严格的场景,如物联网设备。
yorkbarney 发表于 2025-2-5 14:18 | 显示全部楼层
不仅节省了硬件成本,还减少了电路板的空间占用,对于一些对成本和体积有严格要求的应用场景非常友好。
ingramward 发表于 2025-2-5 16:12 | 显示全部楼层
从串口接收和发送时钟日历数据时,是否会出现数据丢失或错误的情况。比如,在高波特率下或者存在一定电磁干扰的环境中,数据的传输是否依然稳定。
beacherblack 发表于 2025-2-5 16:39 | 显示全部楼层
利用AT32L021的低功耗模式,如深度睡眠模式,减少系统功耗。
houjiakai 发表于 2025-2-5 19:18 | 显示全部楼层
时钟日历的精度对于整个系统非常重要,需要确保时钟模块具有高精度和稳定性。
pentruman 发表于 2025-2-5 21:07 | 显示全部楼层
通过串口通信,可以方便地与其他设备进行数据交换,扩展了系统的应用场景。
uptown 发表于 2025-2-6 11:26 | 显示全部楼层
串口通信的软件实现相对简单,开发者只需要掌握基本的串口通信协议和编程接口,就可以实现时钟日历信息的发送和接收。
phoenixwhite 发表于 2025-2-6 12:12 | 显示全部楼层
软件部分需要实现时钟日历的管理和串口通信协议,包括时钟的设置、读取和同步等功能。
gygp 发表于 2025-2-6 14:15 | 显示全部楼层
时钟日历功能对于实时性要求较高              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

66

主题

1080

帖子

6

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