中微半导体评测
板子拿来好多天了,还没开箱评测呢,看到群里有兄弟串口波特率没弄好,这就分享下自己的解决方法。
首先发个开箱
1.jpg
这就是开发板CMS8S6990,是中微半导体的。板子上包含了两个LED灯,以及板载按键,所有IO都已经拓展引出,也都有丝印标注,看着方便。同时板载仿真的器,可以直接对芯片仿真。这几年对51核的开发也不同以往,都加入了仿真器,可以直接烧录程序,仿真程序。所以开发起来也是十分方便了。
2.jpg
3.jpg
中微开始还错发了东西,那个血氧就是他们自己研发出来的指尖血氧仪应用方案。显示是一块OLED屏幕。做工精致。
接下来还是步入正题,直接进入串口程序。
4.png
这是官方给了很多例程可以参考,我这里直接用了UART0_Printf的例程。
5.png
首先这个时钟配置主要依赖在仿真界面,我们通过KEIL的魔术棒,进入Debug的界面就能看到下面的设置了,最主要的是先设置芯片,MCU Model,里面有很多型号,通过尾缀可以看出封装,封装不同其实就是管脚数量的多少。
6.png
下面看第一个配置是时钟,时钟因为外部未焊接所以我们选择内部的高速时钟。
7.png
内部的时钟树,对后面两个参数设置是有影响的,因为这个在传统的51中没这个概念。这个是参考手册里的。
8.png
第二个参数是对于这个系统时钟预分频器的。
9.png
这个是第三个参数,其实这两个都是最后的系统时钟中展现的。也都是一个用处分频,把频率降低的,配置多少比多少,就要衰减多少。
最终按照我配置的Fsys就是8MHz了。
10.png
然后就是在main函数的前面找到把这个修改掉,原先是24Mhz。记住这个值在后面能用到。
11.png
接下来就是main函数主体,就只执行了一句话,就是打印。测试输出。我们了解串口为啥乱码,肯定要去串口配置函数中去看。所以下面就是重点。进去串口0配置函数。
12.png
这个就是串口配置函数,里面有很多东西,但是有宏定义,但是其没有作用,可能是keil 4的原因,不然一些不执行的宏在keil里面就会呈现灰色状态。
下面一眼看过去就看到了波特率9600的配置。所以到这里下载完毕,打开串口助手,设置波特率9600,就能接收了。
但是很遗憾全部打印的是这种乱码
13.jpg
下面再说解决办法。
14.png
到这里出现一个宏,后面注释一堆。不用管,因为你没在魔术棒的工具里定义这样一个全局宏,所以他下面的是不执行,具体执行的是后面那个65484的那句话。这里就会很好奇这个数是怎样来的,在参考别人的稿子时,发现了这样一个表。
15.png
表的上面是一堆怎样计算的。
16.png
下面给了一些配置情况下那个值。记住之前的24Mhz的事,这里他具体的什么模式我没去分析,但我记住之前代码里的配置了,代码的波特率9600没有变,时钟之前是24Mhz,BRTValue的值之前是65380。那么就是对应最后的一个表,所以我系统时钟修改成8Mhz之后,在波特率9600的情况下对应BRTValue = 65484就是这样的一个值。经过上面,全部看下来应该就能配置出自己想要的波特率了。
17.png
最后这就是成功的样子。
最后就是把串口助手插在板子上会有识别不到芯片的情况,注意下。还有这个比较舒服的点就是烧完程序就固化了,这个方便点。
18.jpg