8位 MCU系列应用参考示例、典型常见问题

CH554G 接USB键盘获取键盘按下的键值   使用串口输出    有demo吗?


参考CH554EVT中HOST中代码:

http://www.wch.cn/downloads/CH554EVT_ZIP.html


void KeyCodeCorrespond(UINT8 keyCode)

{

HIDKey[0] = 0; 

if((keyCode>='a')&&(keyCode<='z')){                                      

 

if(LED_VALID&0x02)

{

FLAG = 0;

HIDKey[2] = 0x39;

Enp1IntIn();

while(FLAG == 0);

FLAG = 0;

memset(&HIDKey[0],0,8);

Enp1IntIn();

while(FLAG == 0);

}

keyCode -= 0x5D; 

HIDKey[2] = keyCode;

}

请问一下if(LED_VALID&0x02)是什么意思呢


应该是应用逻辑上的一些状态判断,单看这段代码不太明确,结合整体。

可以搜索LED_VALID所有使用到的地方,代码上下都在干什么。


沁恒的芯片一般,连续用了两款芯片都踩坑了,第一个芯片是一个以太网CH395,链接后没有进链接中断,跟客服纠结了两个月,太累了,最后是无限的各种理由拖延,最后放弃了。第二个芯片是CH552做了一个HID设备,芯片很有规律的复位,不知道我到底哪里做错误,最后程序也发给了客服,我们都是用官方相同的开发板做的验证,我这里四台电脑都出同样的问题,沁恒那一次也没有出现我也是醉了,出了问题,不知道问题再哪里,浪费时间,使用芯片尽量选可靠的大品牌 


一、CH395中断异常的常见原因可能有:

①通讯接口本身异常,中断值获取有问题

②单片机IO中断信号获取有问题,常见的边沿中断和电平中断的矛盾,CH395是低电平中断

③单片机中断处理函数中的处理方式(中断源判断方式)有问题

二、8位机意外的复位通常可能的原因有:

①、电源不稳定,芯片无法维持正常的运行

②、看门狗存在,没有及时进行喂狗

③、软件工程建立时缺少了一些C文件,一些函数只有声明,没有函数实体

④、RST引脚受到了别的东西的影响(如果不需要外部RST功能,可以直接在ISP工具中关闭该功能)


芯片在测试时常会遇到一些奇怪的问题,问题的发生是硬件、软件的综合结果,通常我们会做排除法来定位问题。但问题的复现始终是最难的问题,需要特定的环境。从您的描述中不难看出,技术支持人员在解决CH395和CH552问题中投入了相应的努力,可能是受限于测试条件的不统一,现象表现并不一致。

CH395和CH552都是有着较多成熟应用的芯片,一些问题可能是由一些电路设计、软件代码上的小细节引起、放大的,当然,沁恒技术支持人员希望能够和使用者一同解决问题。


您可以继续联系技术支持以解决两个芯片的相关问题:https://www.wch.cn/services/technical_support.html


There is also a 5. reason which WCH may not tell you:

The header files for for CH552/CH554 and other x51 CPUs are some what buggy.

This may cause Keil to generate incorrect code on higher optimize levels


As a rule of dump:

never ever use #define to create SFR definitions. Unfortunately WHC use that 

a lot in their device header files. Keil threads SFRs like volatile. This might be broken

by using #define.


需要一个模拟触摸的例程方便提供吗?需求是通过按键的方式翻抖音,快手等短视频app,我的邮箱是个人信息保护,已隐藏


有没有CH55X  模拟UPS的例子


只有登录才能回复,可以选择微信账号登录