找回密码
 立即注册
查看: 1748|回复: 11

建议提供的范例再多些注释

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:520
  • 最近打卡:2025-05-01 08:06:21

109

主题

1897

回帖

5204

积分

论坛元老

积分
5204
发表于 2023-1-14 11:46:29 | 显示全部楼层 |阅读模式
本帖最后由 xxkj2010 于 2023-1-14 11:48 编辑

    STC提供的范例为我们使用STC单片机提供极大的方便,但在实际应用中,发现注释偏少。
    对于初次到手的芯片,在寄存器超多的情况下,对每个寄存器的定义、配置要一个一个地看手册,一个一个地研究,的确很浪费时间,所以大家首选的方法是使用公司提供的范例,然后根据需要再修改范例,以实现自己所需要的功能。
    但在使用范例中,发现一个问题,就是注释偏少。对于注释偏少的范例,大佬一般没什么,不觉得看代码很累,但对于我们这些菜鸟来说,的确很辛苦。例如本人前两天使用 STC8H8K64U-DEMO-CODE\61-CDC(Communication Device Class)协议范例,这个范例是将USB配置成虚拟串口,实现PC端向USB-CDC发送数据时,这些数据会转发到串口2,但在实际中P10 P11引脚没有串口输出,结果分析范例,才发现在uart_init()中,串口2的引脚被影射到P46 P47,于是将P_SW2 |= 1;注释掉,随即P11引脚输出了串口数据。幸好 P_SW2 |= 1; 后面有注释  // UART2 switch to: 1: P4.6 P4.7  ,这真的为我们阅读代码提供极大的方便。
000.jpg

    但又想将这个范例改成电脑向USB-CDC发送数据,然后单片机又通过USB-CDC虚拟串口向电脑端原数据返回,想看看是哪个函数或哪些语句实现这个功能,在没有注释的情况,仿佛发现有下面这些代码段可以实现数据原路返回:
        IE2 &= ~0x80; // EUSB = 0;
        UsbInBusy = 1;
        usb_write_reg(INDEX, 1);
        cnt = 0;
        while (TxRptr != TxWptr)
        {
            usb_write_reg(FIFO1, TxBuffer[TxRptr++]);
            cnt++;
            if (cnt == EP1IN_SIZE)
                break;
        }
        usb_write_reg(INCSR1, INIPRDY);
        IE2 |= 0x80; // EUSB = 1;
001.jpg
各位大佬,以上看法,有不对的请多多指教,谢谢!

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:383
  • 最近打卡:2025-04-30 09:42:19

40

主题

194

回帖

601

积分

高级会员

积分
601
发表于 2023-1-16 15:24:58 | 显示全部楼层
既然是初学,建议多看看手册,手册里的范例程序比ISP里面的的范例程序注释多一些。
手册看多了,问题就少了,这是我的一个体会,我也是一个初学者,愿与你共勉。

点评

正解  发表于 2023-1-16 15:29
  • 打卡等级:以坛为家II
  • 打卡总天数:520
  • 最近打卡:2025-05-01 08:06:21

109

主题

1897

回帖

5204

积分

论坛元老

积分
5204
发表于 2023-1-17 11:22:21 | 显示全部楼层
康辉*** 发表于 2023-1-16 15:24
既然是初学,建议多看看手册,手册里的范例程序比ISP里面的的范例程序注释多一些。
手册看多了,问题就少了 ...

当然一定要看手册的,否则看代码也不知道是什么意思、什么道理。
我看USB中断程序,就是一边看代码,一边查找寄存器,再看该寄存器的功能与应用,最后再自行注释,这样花费很多的时间。
如果有注释,我们看手册方向性比较强。这样是辛苦一人,方便大家。
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-07-05 16:23:47

3

主题

51

回帖

487

积分

中级会员

积分
487
发表于 2023-4-11 19:16:18 | 显示全部楼层
本帖最后由 晓奇 于 2023-4-11 19:51 编辑

抓住不熟悉的寄存器、特殊位搜索手册就是最快的学习过程,等到把一个陌生的程序注释一遍以后你会发现“原来是这样”;p
读CDC虚拟收发,最好的例程是那个虚拟示波器接口的那个STC32G12K128-DSO-USB-CDC-PC-480x320-V2-opencode-20220819
花一点时间把里面的示波器部分去掉找出他与电脑间的联系,这里的收发非常清晰,我做了一点注释,给你做个参考。
我喜欢独立的代码,不喜欢用lib,没用的东西背了一大堆,所以想办法找可以抽出来的cdc代码。
32G的简单转换修改一下寄存器的表示形式,做了8H的代码


28-STC32GCDC基础接口带一键ISP.zip

4.67 KB, 下载次数: 107

28-8h8k64uCDC基础接口带一键ISP.zip

39.18 KB, 下载次数: 109

1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:183
  • 最近打卡:2025-04-28 10:14:30
已绑定手机

0

主题

42

回帖

1322

积分

金牌会员

积分
1322
发表于 2024-9-14 23:28:26 | 显示全部楼层
正在学习USBCDC串口通信,对批量接收数据和批量发送数据还是没有搞明白。
发送和接受感觉超过64字节后就不对了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:233
  • 最近打卡:2025-04-30 16:08:37

61

主题

818

回帖

1490

积分

金牌会员

积分
1490
发表于 2024-9-15 07:11:55 | 显示全部楼层
stc相对其他单片机官方友好多了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:484
  • 最近打卡:2025-05-01 08:52:01
已绑定手机

23

主题

589

回帖

2813

积分

金牌会员

积分
2813
发表于 2024-9-15 07:34:51 | 显示全部楼层
也建议官方多增加注释,这样不但方便了初学者,其实最终还是有利于官方的。
不停地学习
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15611
发表于 2024-9-15 09:39:16 | 显示全部楼层

持续补充
截图202409150938586449.jpg

点评

点赞!  发表于 2024-9-15 13:36
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:186
  • 最近打卡:2025-03-06 09:49:49

14

主题

133

回帖

1149

积分

金牌会员

积分
1149
发表于 2024-11-11 14:34:38 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:244
  • 最近打卡:2025-05-01 15:50:20

49

主题

129

回帖

1361

积分

金牌会员

积分
1361
发表于 2024-11-29 21:59:50 | 显示全部楼层
建议不熟悉的人,选择STC库的代码后先自己边看边注释,将每条语句都注释完。完成后你会发现,这样才是读懂了。当然也可能注释错了,不管怎样这样学到的东西最多、最扎实!
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 00:01 , Processed in 0.326146 second(s), 119 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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