| 本帖最后由 hello、C 于 2020-8-23 23:13 编辑 
 
 主要测试UART0功能 
 由于最近需要烦心的事比较多,晚上有空得时间比较少,此次更新有点晚了,错过了评选提交时间,十分抱歉! 再次感谢21ic, 赛元官方,小管家等给予的支持与厚爱! 
1.1 开箱-芯片测试板-SC95F8616 
 1.2 开箱-SC LINK 
 1.3 开箱-拆包(SC LINK制作精美,芯片测试板有外接晶振)及配件(烧录线1个及SC95F8616芯片2个) 
 2.1 安装C51 Keil,不然EasyCodeCube不能正常运行。 
 2.2 安装EasyCodeCubeV2.1.5开发环境后,文件->新建工程,右下角选择芯片型号SC95F8616,开始项目。 
 3.1 配置option时钟,使用外部32MHz晶振,如图所示 
 3.2 配置UART0如图所示 
 3.3  RX0、TX0只能用带上拉的输入模式? 
 4.1 编译,报错缺少*.list文件,我们用C51 Keil打开保存的C51 Keil工程,编译一下,生成缺少的*.list文件. 
 4.2 在EasyCodeCubeV2.1.5开发环境下编译成功。 
 4.3 添加自定义结构体 
 4.4 点击下一步进入用户程序图形化编辑视图,拉出while(1)循环,填入如下代码 
  <font color="#00bfff">
while(1)
{
        usfs.num = num;
        UART0_SendData8(usfs.num);
        while(!UART0_GetFlagStatus(UART0_FLAG_TI));
        UART0_ClearFlag(UART0_FLAG_TI);
        UART0_SendData8(usfs.firstByte);
        while(!UART0_GetFlagStatus(UART0_FLAG_TI));
        UART0_ClearFlag(UART0_FLAG_TI);
        UART0_SendData8(usfs.secondByte);
        while(!UART0_GetFlagStatus(UART0_FLAG_TI));
        UART0_ClearFlag(UART0_FLAG_TI);
        UART0_SendData8(usfs.thirdByte);
        while(!UART0_GetFlagStatus(UART0_FLAG_TI));
        UART0_ClearFlag(UART0_FLAG_TI);
        UART0_SendData8(usfs._rChar);
        while(!UART0_GetFlagStatus(UART0_FLAG_TI));
        UART0_ClearFlag(UART0_FLAG_TI);
        UART0_SendData8(usfs._nChar);
        while(!UART0_GetFlagStatus(UART0_FLAG_TI));
        UART0_ClearFlag(UART0_FLAG_TI);
        num++;
        if(num > '9')
        {
                num = '0';
        }
        for(nloop = 0x7FFF; nloop; nloop--);
        for(nloop = 0x7FFF; nloop; nloop--);
        for(nloop = 0x7FFF; nloop; nloop--);
}
</font>
 
 4.5 添加main使用的局部变量 
 5.1 编译一下,更新到C51 Keil工程,在C51 Keil环境下生成一下Hex文件。  
 5.2 烧录 
 5.3 实验结果 
 6 总结   a. 容易上手,节约时间。   b. 资料齐全,并配有相关视频资料。   c. 有基础几乎不用看芯片手册都能做出东西来。   d. 图形化编程,可将注意力集中在过程控制及优化。   e. 代码自动生成,工程师只需要关注主要功能实现。   f. 烧录相关的配套齐全,操作方便。   g. 降低了工程师的劳动强度。   h. 使用自定义结构体修改,有点小BUG,好像修改不了。 
 7 附件 期待后面再继续更新!!!
 
 |