📄 mcbsp.c
字号:
/*************************************************************/
/* 串口初始化 */
/*************************************************************/
#include "mcbsp.h"
unsigned int MA3140_Read( void )
{
MCBSP0_SPSA0 = SPCR2_SUBADDR;
do
{
}while((MCBSP0_SPSD0&2) != 0x02);
MCBSP0_DXR10 = 0;
MCBSP0_SPSA0 = SPCR1_SUBADDR;
do
{
}while((MCBSP0_SPSD0&2) != 0x02);
return (MCBSP0_DRR10);
}
void MA3140_Send( unsigned int data )
{
MCBSP0_SPSA0 = SPCR2_SUBADDR;
do
{
}while((MCBSP0_SPSD0&2) != 0x02);
MCBSP0_DXR10 = ( data & 0x0ff )|0x8000;
MCBSP0_SPSA0 = SPCR1_SUBADDR;
do
{
}while((MCBSP0_SPSD0&2) != 0x02);
}
void MA3140_Init( void )
{
unsigned int inData;
do
{
MCBSP0_SPSA0 = SPCR2_SUBADDR;
do
{
}while((MCBSP0_SPSD0&2) != 0x02);
MCBSP0_DXR10 = MA3140_CtrData;/* 9600bps,8-bit words,no parity,one stop with 3.6864MHz crystal,transmit empty assert IRQ*/
MCBSP0_SPSA0 = SPCR1_SUBADDR;
do
{
}while((MCBSP0_SPSD0&2) != 0x02);
do
{
inData = MCBSP0_DRR10;
}while((MCBSP0_SPSD0&2) == 0x02); /*read over*/
MCBSP0_SPSA0 = SPCR2_SUBADDR;
do
{
}while((MCBSP0_SPSD0&2) != 0x02);
MCBSP0_DXR10 = 0x4000;/* read back*/
MCBSP0_SPSA0 = SPCR1_SUBADDR;
do
{
}while((MCBSP0_SPSD0&2) != 0x02);
inData = MCBSP0_DRR10;
}while((inData & 0x3fff)!=(MA3140_CtrData&0x3fff));
}
void MCBSP0_Init( void )
{
unsigned int data;
data = CLKSTP_s|RINTM_s|DLB_s|RJUST_s|DXENA_s|ABIS_s|RSYNCEER_S;
MCBSP0_SPSA0 = SPCR1_SUBADDR;
MCBSP0_SPSD0 = data;
data = FREE_s|XINTM_s;
MCBSP0_SPSA0 = SPCR2_SUBADDR;
MCBSP0_SPSD0 = data;
data = FREE_s|FRST_s|XINTM_s;
MCBSP0_SPSA0 = SPCR2_SUBADDR;
MCBSP0_SPSD0 = data;
data = RWDLEN1_s16|RFRLEN1_s1;
MCBSP0_SPSA0 = RCR1_SUBADDR;
MCBSP0_SPSD0 = data;
data = RDATDLY_s|RFIG_s|RWDLEN2_s16|RFRLEN2_s1;
MCBSP0_SPSA0 = RCR2_SUBADDR;
MCBSP0_SPSD0 = data;
data = CLKGDV_s|FWID_s;
MCBSP0_SPSA0 = SRGR1_SUBADDR;
MCBSP0_SPSD0 = data;
data = CLKSM_s|FSGM_s|FPER_s;
MCBSP0_SPSA0 = SRGR2_SUBADDR;
MCBSP0_SPSD0 = data;
data = XWDLEN1_s16|XFRLEN1_s1;
MCBSP0_SPSA0 = XCR1_SUBADDR;
MCBSP0_SPSD0 = data;
data = XDATDLY_s|XFIG_s|XWDLEN2_s16|XFRLEN2_s1;
MCBSP0_SPSA0 = XCR2_SUBADDR;
MCBSP0_SPSD0 = data;
data = XIOEN_s|FSXM_s|FSRM_s|CLKXM_s|CLKRM_s|FSXP_s|FSRP_s|CLKXP_s|CLKRP_s;
MCBSP0_SPSA0 = PCR_SUBADDR;
MCBSP0_SPSD0 = data;
data = FREE_s|FRST_s|GRST_s|XINTM_s;
MCBSP0_SPSA0 = SPCR2_SUBADDR;
MCBSP0_SPSD0 = data;
for (data=0;data<1000;data++)
{
}
data = CLKSTP_s|RINTM_s|RRST_s|DLB_s|RJUST_s|DXENA_s|ABIS_s|RSYNCEER_S;
MCBSP0_SPSA0 = SPCR1_SUBADDR;
MCBSP0_SPSD0 = data;
data = FREE_s|FRST_s|GRST_s|XRST_s|XINTM_s;
MCBSP0_SPSA0 = SPCR2_SUBADDR;
MCBSP0_SPSD0 = data;
for (data=0;data<1000;data++)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -