关于串口SCIA的问题,2812核,串口数据不对?大师解答一下...
时间:10-02
整理:3721RD
点击:
#include "DSP28_Device.h"
// Prototype statements for functions found within this file.void Gpio_select(void);void Initsystem(void);void SCI_Init(void);void main(void) {// char message[]={"the F2812 - UART is fine!\n\r"};// char MESSAGE[]={"ABCDEFG"}; int AAA[200]; int index = 0; long i,j; Initsystem(); Gpio_select(); SCI_Init(); while(1) { for(j=0;j 26) { index = 0; for(i=0;i >8; //波特率:9600(LSPCLK=37.5Mhz)SciaRegs.SCILBAUD=487&0x00FF;SciaRegs.SCICTL1.all=0x0023; //使SCI退出复位 }
//SCI时钟进行配置,并使能SCI模块时钟void Initsystem(void) { EALLOW; SysCtrlRegs.WDCR=0x00AF; //配置看门狗 //0x00e8 禁止看门狗,预定标系数Prescaler=1 //0x00AF 不禁止看门狗,预定标系数Prescaler=64 SysCtrlRegs.SCSR.bit.WDENINT=0x0; //看门狗复位 SysCtrlRegs.SCSR.bit.WDOVERRIDE=0x00;
SysCtrlRegs.PLLCR=0x5; //配置处理器锁相环,倍频系数5 SysCtrlRegs.HISPCP.all= 0x1; //配置高速外设时钟分频系数2 SysCtrlRegs.LOSPCP.all = 0x2; //配置高速外设时钟分频系数4
//设置使用的外设时钟 //一般不使用的外设时钟禁止,降低系统能耗 SysCtrlRegs.PCLKCR.bit.EVAENCLK=0; SysCtrlRegs.PCLKCR.bit.EVBENCLK=0; SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=0; SysCtrlRegs.PCLKCR.bit.SPIENCLK=0; SysCtrlRegs.PCLKCR.bit.ECANENCLK=0; SysCtrlRegs.PCLKCR.bit.ADCENCLK=0; SysCtrlRegs.PCLKCR.bit.SCIENCLKA=1;//使能SCI模块的时钟 SysCtrlRegs.PCLKCR.bit.SCIENCLKB=0; EDIS; }
串口中独到的数据66 00 78 00 00 06 0C 06 03 0C 00 80 78 00 00 00 00 FE 9E 06 0E 00 00 FE 60 33 FC 00 00 00 80 78 00 00 00 00 FE 9E 06 FC
这是为什么?读到的数据是不对的,不明白了,谁能告诉我程序如何改
// Prototype statements for functions found within this file.void Gpio_select(void);void Initsystem(void);void SCI_Init(void);void main(void) {// char message[]={"the F2812 - UART is fine!\n\r"};// char MESSAGE[]={"ABCDEFG"}; int AAA[200]; int index = 0; long i,j; Initsystem(); Gpio_select(); SCI_Init(); while(1) { for(j=0;j 26) { index = 0; for(i=0;i >8; //波特率:9600(LSPCLK=37.5Mhz)SciaRegs.SCILBAUD=487&0x00FF;SciaRegs.SCICTL1.all=0x0023; //使SCI退出复位 }
//SCI时钟进行配置,并使能SCI模块时钟void Initsystem(void) { EALLOW; SysCtrlRegs.WDCR=0x00AF; //配置看门狗 //0x00e8 禁止看门狗,预定标系数Prescaler=1 //0x00AF 不禁止看门狗,预定标系数Prescaler=64 SysCtrlRegs.SCSR.bit.WDENINT=0x0; //看门狗复位 SysCtrlRegs.SCSR.bit.WDOVERRIDE=0x00;
SysCtrlRegs.PLLCR=0x5; //配置处理器锁相环,倍频系数5 SysCtrlRegs.HISPCP.all= 0x1; //配置高速外设时钟分频系数2 SysCtrlRegs.LOSPCP.all = 0x2; //配置高速外设时钟分频系数4
//设置使用的外设时钟 //一般不使用的外设时钟禁止,降低系统能耗 SysCtrlRegs.PCLKCR.bit.EVAENCLK=0; SysCtrlRegs.PCLKCR.bit.EVBENCLK=0; SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=0; SysCtrlRegs.PCLKCR.bit.SPIENCLK=0; SysCtrlRegs.PCLKCR.bit.ECANENCLK=0; SysCtrlRegs.PCLKCR.bit.ADCENCLK=0; SysCtrlRegs.PCLKCR.bit.SCIENCLKA=1;//使能SCI模块的时钟 SysCtrlRegs.PCLKCR.bit.SCIENCLKB=0; EDIS; }
串口中独到的数据66 00 78 00 00 06 0C 06 03 0C 00 80 78 00 00 00 00 FE 9E 06 0E 00 00 FE 60 33 FC 00 00 00 80 78 00 00 00 00 FE 9E 06 FC
这是为什么?读到的数据是不对的,不明白了,谁能告诉我程序如何改
你这样粘贴的程序别人没法看啊