STC8H2K08U与STC8H8K64U的USB配置有什么不同
STC8H2K08U与STC8H8K64U的USB配置有什么不同?为什么实验箱8.3的例程
在STC8H8K64U上测试正常,在STC8H2K08U上测试不行?
在双串口的通用例程中,
STC8H2K08U与STC8H8K64U均测试正常,但例程中按键是单个的独立按键。
能否提供一个在STC8H2K08U可以运行的,
类似实验箱8.3的例程的这种USB矩阵按键的样式例程,
最好再能带一个CDC串口(P1.0P1.1串口2)。这样就可以实现既能使用串口,又能多按键输入了的功能了,
而且STC8H2K08U相对于STC8H8K64U来说价格要低,而相对于CH340的串口芯片来说,
不但性能上可以代替,而且还多出了USB键盘的功能,希望能出一个这样的例程!
STC8H2K08U与STC8H8K64U的USB配置是相同的,只是无论从ROM还是RAM资源都有明显差别,
STC8H2K08U适合一些简单的USB接口应用,对于一些较复杂的应用,建议还是用STC8H8K64U,
不是走量的话,成本差不了多少。
STC8H2K08U芯片脚位比较少,没有P0口,矩阵按键功能需要你自己移植。
USB配置没有什么不同的,既然独立按键例子测试正常,估计只是矩阵按键没有处理好。 晓飛飛 发表于 2024-4-24 00:00
STC8H2K08U与STC8H8K64U的USB配置是相同的,只是无论从ROM还是RAM资源都有明显差别,
STC8H2K08U适合一些简 ...
即使用STC8H8K64U也没有我上述的例程呀?现有例程一个是USB矩阵键盘的例程,一个是符合设备:CDC串口+USB独立按键的例程。希望给出一个符合设备:CDC串口+USB矩阵键盘的例程。我也试着参考前边USB矩阵键盘的例程改了,但两个例程不是一个风格的,关于USB配置的细节上看上去有些许不同,没有修改成功。从逻辑上来说应当是给出的例程越多,越能说明芯片的功能强大,也越能促进芯片的销量呀,而不是说因为芯片销量大,才想着去做更多例程的呀。还是希望能出一个例程的,既然芯片有这个功能,就应当给出例程来让更多的人去应用呀。 USB配置应该是相同的,可以再仔细检查一下程序,并且看看IO口的使用是否一致 ROM、SRAM大小不同,其余没啥区别。 蓝色海阳 发表于 2024-4-24 09:58
即使用STC8H8K64U也没有我上述的例程呀?现有例程一个是USB矩阵键盘的例程,一个是符合设备:CDC串口+USB ...
目前需要做的例程太多了,后续一定会有这样的例程,根据独立按键例程去改矩阵键盘是没啥太大难度的,键码接入方式是一样的,只是按键检测输出键码的过程需要重写一下。 晓飛飛 发表于 2024-4-24 18:26
目前需要做的例程太多了,后续一定会有这样的例程,根据独立按键例程去改矩阵键盘是没啥太大难度的,键码 ...
好的,其实是否为矩阵键盘都无所谓,主要是实验箱8.3的例程中含有按键状态检测的函数SendKeyStatus();会比较好用:
while (1)
{
if(B_1ms) //1ms到
{
B_1ms = 0;
if(++cnt50ms >= 30) //30ms扫描一次行列键盘
{
cnt50ms = 0;
KeyScan();
}
if(KeyChangeFlag) //按键状态产生变化
{
KeyChangeFlag = 0;
SendKeyStatus();
}
}
}
后边再出例程的话,如果是因为外设引脚太少,没法用矩阵键盘的话,也可以是独立按键,主要希望能带上按键状态检测的函数SendKeyStatus();,我测试程序其实用的是tssop20封装的STC8H8K64U,这个也没有P0口的,我是将按键口改到了P1口,将矩阵键盘扫描改成独立按键扫描来测试的,这样测试方便一点,后边想改回矩阵键盘扫描也好改,改动部分如下:
#define KeyIO P1
......
void KeyScan(void)
{
KeyIO = 0xFF;
IO_KeyDelay();
if(KeyIO == 0xFF)//如果现在没有按键按下
{
NewKeyCode = 0; //没有键按下
}
else//开始键盘扫描
{
//保存当前按键状态
NewKeyCode = (~KeyIO) & 0xFF;
}
if(NewKeyCode != OldKeyCode) //判断按键是否发生了改变
{
KeyHoldTime = 0; //键盘按下时间为0
OldKeyCode = NewKeyCode; //保存当前按键状态
KeyChangeTemp = 1;
}
else
{
KeyHoldTime++; //按下时间累计
if(KeyHoldTime >= 1) //如果按下时间足够
{
KeyHoldTime = 1;
KeyCode = OldKeyCode;//保存按键
if(KeyChangeTemp)
{
KeyChangeTemp = 0;
KeyChangeFlag = 1; //设置发送标志
}
}
}
}
这样对于STC8H8K64U来说,测试是正常的,但下载到STC8H2K08U上就不正常了,不知道要怎么改。而这样只测试了带按键状态检测按键程序,希望是再带一个CDC串口进去,端口希望是P1.0P1.1串口2,如果跟按键冲突的话也可以设置到P3.6P3.7串口1,希望例程能在STC8H2K08U上测试,如果硬件资源不够,至少给一个在STC8H8K64U上可以测试的例程。 晓飛飛 发表于 2024-4-24 18:26
目前需要做的例程太多了,后续一定会有这样的例程,根据独立按键例程去改矩阵键盘是没啥太大难度的,键码 ...
目前单独的矩阵键盘和单独的CDC串口都测试没有问题了,非常期待综合例程! 🎉.
页:
[1]