本帖最后由 wudianjun2001 于 2018-7-10 11:34 编辑
UART是基本的功能,有了串口后续的调试的调试就都很方便直观了。所以先把串口调试出来是很必须的。
先来看看开发板的电路图,这个MCU的串口是P0.4,P0.5两个引脚固定的,开发板上这两个引脚同时连接到了JLINK调试部分的CDC虚拟串口部分,这样调试起来就比较方便了,不需要再连接其他的串口线了。
开发板通过USB线连接到PC后,PC上会出现一个虚拟串口,给这个串口分配个合适的端口号,如果以前的串口太多的话可以重新改个串口号,改完之后最好重启下PC,否则串口有可能不能正确收发程序。
还是使用开发环境来建立自带的例程,建立例程的时候选择串口中断例程
串口收发数据,波特率比较重要,而波特率主要是由系统时钟来的,所以先来看下系统时钟的设置。默认使用的是内部的24.5MHZ的晶振,先选择晶振源,再等待晶振稳定下来。
时钟的分频设置,这里设置的是没有分频,那到外设的频率还是24.5MHZ
这个MCU的固定串口波特率发生器使用时钟T1来完成,T1的设置。T1的时钟源选择为系统时钟。
T1的定时时间设置,计算出来对应的波特率是115200,程序中设置的TL1值好像没用,因为T1设置成MODE2的话是8位自动重装的。修改成别的值也可以正常工作。
TH1= 256 – (24500000/115200/2) = 150 = 0x96
本例程的接收和发送都是采取中断的方式,我一般接收采取中断,发送采取查询方式,把例程修改一下,修改成自己喜欢的方式。修改的几个地方,中断函数里把发送中断去掉,并增加查询发送函数。修改后的程序。
主循环程序,把收到的数据小写字母的话转换成大写字符发出去,其他字符直接回发
串口调试
此内容由EEWORLD论坛网友wudianjun2001原创,如需转载或用于商业用途需征得作者同意并注明出处