中微半导体评测
板子拿来好多天了,还没开箱评测呢,看到群里有兄弟串口波特率没弄好,这就分享下自己的解决方法。
首先发个开箱

这就是开发板CMS8S6990,是中微半导体的。板子上包含了两个LED灯,以及板载按键,所有IO都已经拓展引出,也都有丝印标注,看着方便。同时板载仿真的器,可以直接对芯片仿真。这几年对51核的开发也不同以往,都加入了仿真器,可以直接烧录程序,仿真程序。所以开发起来也是十分方便了。


中微开始还错发了东西,那个血氧就是他们自己研发出来的指尖血氧仪应用方案。显示是一块OLED屏幕。做工精致。
接下来还是步入正题,直接进入串口程序。

这是官方给了很多例程可以参考,我这里直接用了UART0_Printf的例程。

首先这个时钟配置主要依赖在仿真界面,我们通过KEIL的魔术棒,进入Debug的界面就能看到下面的设置了,最主要的是先设置芯片,MCU Model,里面有很多型号,通过尾缀可以看出封装,封装不同其实就是管脚数量的多少。

下面看第一个配置是时钟,时钟因为外部未焊接所以我们选择内部的高速时钟。

内部的时钟树,对后面两个参数设置是有影响的,因为这个在传统的51中没这个概念。这个是参考手册里的。

第二个参数是对于这个系统时钟预分频器的。

这个是第三个参数,其实这两个都是最后的系统时钟中展现的。也都是一个用处分频,把频率降低的,配置多少比多少,就要衰减多少。
最终按照我配置的Fsys就是8MHz了。

然后就是在main函数的前面找到把这个修改掉,原先是24Mhz。记住这个值在后面能用到。

接下来就是main函数主体,就只执行了一句话,就是打印。测试输出。我们了解串口为啥乱码,肯定要去串口配置函数中去看。所以下面就是重点。进去串口0配置函数。

这个就是串口配置函数,里面有很多东西,但是有宏定义,但是其没有作用,可能是keil 4的原因,不然一些不执行的宏在keil里面就会呈现灰色状态。
下面一眼看过去就看到了波特率9600的配置。所以到这里下载完毕,打开串口助手,设置波特率9600,就能接收了。
但是很遗憾全部打印的是这种乱码

下面再说解决办法。

到这里出现一个宏,后面注释一堆。不用管,因为你没在魔术棒的工具里定义这样一个全局宏,所以他下面的是不执行,具体执行的是后面那个65484的那句话。这里就会很好奇这个数是怎样来的,在参考别人的稿子时,发现了这样一个表。

表的上面是一堆怎样计算的。

下面给了一些配置情况下那个值。记住之前的24Mhz的事,这里他具体的什么模式我没去分析,但我记住之前代码里的配置了,代码的波特率9600没有变,时钟之前是24Mhz,BRTValue的值之前是65380。那么就是对应最后的一个表,所以我系统时钟修改成8Mhz之后,在波特率9600的情况下对应BRTValue = 65484就是这样的一个值。经过上面,全部看下来应该就能配置出自己想要的波特率了。

最后这就是成功的样子。
最后就是把串口助手插在板子上会有识别不到芯片的情况,注意下。还有这个比较舒服的点就是烧完程序就固化了,这个方便点。
