晨露 发表于 2025-5-21 09:33:32

下图中多了半边括号



下图中的汇编示例是不是确实了?



kaily 发表于 2025-5-21 09:43:03

晨露 发表于 2025-5-21 09:33
下图中多了半边括号




多谢提醒!

“}”已删除。

下面的汇编代码,没问题。

AI芯 发表于 2025-5-21 11:30:18

文档:AI8051U-20250515

页码:71、91、103
如图所示:stc_usb_cdc_32g.lib误写成stc_usb_cdc_32g.ib,同理实验二、实验三也要修改



kaily 发表于 2025-5-21 18:30:22

AI芯 发表于 2025-5-21 11:30
文档:AI8051U-20250515

页码:71、91、103


谢谢您提醒!

已修正,并已上传更新,您可以下载最新版本查阅。

rm543 发表于 2025-5-22 09:50:04

在编写 USB 代码时发现一个手册上未注释的点:
由于 STC 的内核是多级流水线模式,不是每条指令都能即时完成,所以有一些写后判断的操作需要加两个 NOP。

所以我发现了以下问题:
在操作 USB 间接地址寄存器 USBADR 时,如果在设置完 INDEX 后马上进行忙闲判断,将会读出错误的状态,导致操作失败。

代码操作(向某个端点的 INSCR1 寄存器写入数据):

1   while(USBADR & 0x80);                                  // 等待USB间接操作寄存器可用
2   USBADR = INDEX;                                       // 设置写入的USB间接寄存器地址
3   USBDAT = idx;                                              // 写入 USB 端点序号

4   while(USBADR & 0x80);                                  // 等待USB间接操作寄存器可用
5   USBADR = INCSR1;                                       // 设置写入的USB间接寄存器地址
6   USBDAT = INIPRDY;                                    // 写入USB间接寄存器数据


在执行第4行的时候,由于 USBDAT 还没完成写入,此时 USBADR 的忙闲状态应该还是保持上一次的值没更新,
所以在执行第4行读取忙闲状态时,会读出错误的状态,让程序以为 USB 间接储存器已经为闲从而写入。

更改为以下增加等待可获得正确结果:


1   while(USBADR & 0x80);                                  // 等待USB间接操作寄存器可用
2   USBADR = INDEX;                                       // 设置写入的USB间接寄存器地址
3   USBDAT = idx;                                              // 写入 USB 端点序号

4   _nop_();_nop_();                                          // 等待 USBDAT 写入完成

5   while(USBADR & 0x80);                                  // 等待USB间接操作寄存器可用
6   USBADR = INCSR1;                                       // 设置写入的USB间接寄存器地址
7   USBDAT = INIPRDY;                                    // 写入USB间接寄存器数据


如果是按照读写函数的方式进行调用,一般不会有问题,因为调用函数还有 LCALL 和 RET 的操作,盖过去了这两个周期,
但如果是想连续完成读写,那么要么把设置地址的操作和写入数据的操作中间放入其它工作或者加入 NOP 进行等待。

在手册上应该多标注一下这种注意事项,IO口读写,中断开关 EA 等也是一样的,但目前好像只在论坛上说明过这种现象,
手册上的例程只是写上了这两个 _nop_() ,但并没有说明原因。


JISHUZHAI 发表于 2025-5-22 22:14:34

JISHUZHAI 发表于 2025-5-16 20:39
STC8H2K32U TSSOP20封装,ADC0通道和ADC1通道表反。
测试P1.0是通道1,P1.1是通道0。




STC偷偷改了

JISHUZHAI 发表于 2025-5-22 22:18:23

神农鼎 发表于 2025-5-16 22:34
帮您补贴了三张图,请对照后,再测试下

实测默认是图一和图三,图二应该写错了

zhp 发表于 2025-5-23 09:26:26

JISHUZHAI 发表于 2025-5-22 22:14
STC偷偷改了
STC有必要偷偷改吗?
STC的风格一向都是有问题,光明正大的承认,然后修改就完了
从你5/16发贴到现在,STC8H2K32U的管脚图就没有改过

给您贴的3张图是不同系列的芯片都打线到TSSOP20
红色表示无法正常打线,只能P1.0和P1.1交换打线
3个图都是正确的!!!


另外:有时手册上给出的管脚图是芯片还没有出来前给出的预告图
等实际的芯片出来后发现预告图无法按原规划打线,则会对管脚图进行调整
如果您手上的图确实是错的,只能说明您的数据手册版本太低了



国学芯用 发表于 2025-5-24 08:50:29

STC32G手册,18章节去掉,和第3章合并



国学芯用 发表于 2025-5-24 08:53:17

AI8051U\AI8\STC8H\STC32G手册,
在章节标题:Alapp-ISP下载软件高级应用,后添加,“如何控制下载次数”


页: 1 2 3 [4] 5 6 7 8
查看完整版本: 前进中的PDF,一起完善他,以后数据手册的笔误部分大家在这个帖子集中反馈