坛子里有官方例程。但我运行后发现不好用。又有坛友发了CH2通道的中断的没工程文件。我也没调通。下午没事时调了一下,居然通了。我也没用中断。现在把注意事项说一下。免坛友走重覆路哈。
一、一定要短JP29,这样才能把电供到RS3232上边。
二、注意时钟设定。这里设为20MHZ。
void InitClock(void)
{
/*set Main clock stabilization
wait time to 2ms*/
CSW_TMR_bit.MOWT = 9;
/*Enable Main Oscilator*/
SCM_CTL_bit.MOSCE = 1;
/*Wait stabilization end*/
while(!SCM_STR_bit.MORDY);
/*Set PLL stabilization
wait time to 512uS*/
PSW_TMR_bit.POWT = 2;
/*Set PLL to 80MHz*/
PLL_CTL1 = 0; /*K = 1, M=1*/
PLL_CTL2 = 19; /*N = 20*/
/*Enable PLL*/
SCM_CTL_bit.PLLE = 1;
/*Set bus prescalers*/
BSC_PSR_bit.BSR = 0;
APBC0_PSR_bit.APBC0 = 2;
APBC1_PSR_bit.APBC1 = 2;
APBC2_PSR_bit.APBC2 = 2; /*注意参数*/
/*Wait PLL stabilizatoin end*/
while(!SCM_STR_bit.PLRDY);
/*Select PLL for main clock*/
SCM_CTL_bit.RCS = 2;
/*Wait PLL to be connected*/
while(2 != SCM_STR_bit.RCM);
}
三、选择正确的管脚功能
由于工业板的串口是在UART0,在原理图的P2.1 P2.2上所示得把端口功能设为外设功能
PFR2 |= 0x0006;
四、选择正确的通道
EPFR07 = 0x0000050; 第0路
五、选择正确的波特率
/*9600 波特率 20MHZ下*/
UART0_BGR = 0x0823;
最后就是查询有无数据进来。并直接向发送寄存器写数据就可。
当然只是调通,对大家只是个参考。后边还得大家根据自己的情况来完善。
下图是打断点收的数据:
下图是我串口助手上的数据
我这个程序就是发0x33,收0xAA
别看这么小个程序,折腾我好几天。发个图祝贺下
上工程文件:
MB9B506UART.rar
(295.64 KB, 下载次数: 24)
[
本帖最后由 ddllxxrr 于 2012-7-19 13:59 编辑 ]