本帖最后由 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 附件
期待后面再继续更新!!!
|