This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

5509多通道缓冲串口作为SPI工作模式 配置AD9857,写数据没问题,但读AD9857中寄存器数据 读不出来 求帮忙分析

 //---------Global data definition--------- MCBSP_Config Configclockstop8=

{ MCBSP_SPCR1_RMK( MCBSP_SPCR1_DLB_OFF, /* DLB = 0 禁止数字回环*/

MCBSP_SPCR1_RJUST_RZF, /* RJUST = 0 接收数据符号拓展和调整方式*/

3, //MCBSP_SPCR1_CLKSTP_NODELAY, /* 重要CLKSTP = 10 时钟停止模式 与CLKXP有关*/

MCBSP_SPCR1_DXENA_NA, /* DXENA = 0 DX引脚延时使能*/

MCBSP_SPCR1_ABIS_DISABLE, /* ABIS = 0 关闭abis*/

MCBSP_SPCR1_RINTM_RRDY, /* RINTM = 0 接收中断模式*/

0, /* RSYNCER = 0 接收帧同步错误标志*/

MCBSP_SPCR1_RRST_DISABLE/* RRST = 0 接收器复位*/ ),

MCBSP_SPCR2_RMK( MCBSP_SPCR2_FREE_NO, /* FREE = 0 */

MCBSP_SPCR2_SOFT_NO,/* SOFT = 0 */

MCBSP_SPCR2_FRST_RESET,/* FRST = 0 */

MCBSP_SPCR2_GRST_RESET,/* GRST = 0 */

MCBSP_SPCR2_XINTM_XRDY, /* XINTM = 0 */

0, /* XSYNCER = N/A */

MCBSP_SPCR2_XRST_DISABLE /* XRST = 0 */ ),

MCBSP_RCR1_RMK( MCBSP_RCR1_RFRLEN1_OF(0), /* RFRLEN1 = 0 帧长为一字*/

MCBSP_RCR1_RWDLEN1_16BIT /* RWDLEN1 = 0 每字为8bite*/ ),

MCBSP_RCR2_RMK( MCBSP_RCR2_RPHASE_SINGLE, /* RPHASE = 0 模式一:只与RCR1有关*/

MCBSP_RCR2_RFRLEN2_OF(0), /* RFRLEN2 = 0 */

MCBSP_RCR2_RWDLEN2_8BIT, /* RWDLEN2 = 0 */

MCBSP_RCR2_RCOMPAND_MSB, /* RCOMPAND = 0 非压缩模式*/

MCBSP_RCR2_RFIG_YES, /* 重要RFIG = 0 忽略错误的帧同步信号 */

MCBSP_RCR2_RDATDLY_1BIT /* RDATDLY = 1 延时1bit*/ ),

MCBSP_XCR1_RMK( MCBSP_XCR1_XFRLEN1_OF(0), /* XFRLEN1 = 0 帧长为一字*/

MCBSP_XCR1_XWDLEN1_16BIT /* XWDLEN1 = 0 每字8bite*/ ),

MCBSP_XCR2_RMK( MCBSP_XCR2_XPHASE_SINGLE, /* XPHASE = 0 模式一:帧长只与XCR1有关*/

MCBSP_XCR2_XFRLEN2_OF(0), /* XFRLEN2 = 0 */

MCBSP_XCR2_XWDLEN2_8BIT, /* XWDLEN2 = 0 */

MCBSP_XCR2_XCOMPAND_MSB, /* XCOMPAND = 0 不拓展*/

MCBSP_XCR2_XFIG_YES, /* 重要XFIG = 0 忽略错误的帧同步信号*/

MCBSP_XCR2_XDATDLY_1BIT /* XDATDLY =1 发送数据延时1bit*/ ),

MCBSP_SRGR1_RMK( MCBSP_SRGR1_FWID_OF(0), /* 停止模式无效**重要FWID = 0 帧同步信号的脉宽周期数*/

MCBSP_SRGR1_CLKGDV_OF(23) /* 停止模式无效**重要CLKGDV =9 CLKG时钟频率*/ ),

MCBSP_SRGR2_RMK( 1,//MCBSP_SRGR2_GSYNC_FREE, /* FREE = 0 内部时钟帧同步 */

MCBSP_SRGR2_CLKSP_RISING, /* 重要CLKSP = 0 CLKS 引脚极性*/

MCBSP_SRGR2_CLKSM_INTERNAL, /* 重要CLKSM = 1 cpu时钟*/

0,//MCBSP_SRGR2_FSGM_DXR2XSR, /* FSGM = 0 发送帧同步模式,如果FXSM=1,当DXR->XSR时,McBSP产生帧同步信号*/

MCBSP_SRGR2_FPER_OF(16) /*重要 FPER = 0 FSG信号帧同步时钟周期数,应该是7*/ ),

MCBSP_MCR1_DEFAULT, MCBSP_MCR2_DEFAULT, MCBSP_PCR_RMK( MCBSP_PCR_IDLEEN_RESET, /* IDLEEN = 0 省电使能*/

0,// MCBSP_PCR_XIOEN_SP, /* XIOEN = 0 发送GPIO使能*/

0,// MCBSP_PCR_RIOEN_SP, /* RIOEN = 0 接收GPIO使能*/

MCBSP_PCR_FSXM_INTERNAL, /* 重要FSXM = 1 发送帧同步模式,0由FSX引脚提供,1由McBSP提供*/

MCBSP_PCR_FSRM_INTERNAL, /* 重要FSRM = 1 接收帧同步模式,0由FSR引脚提供,1由McBSP提供*/

MCBSP_PCR_CLKXM_OUTPUT, /* 关键CLKXM = 1 主从模式*/

MCBSP_PCR_CLKRM_INPUT, /* 关键CLKRM = 0 主从模式*/

MCBSP_PCR_SCLKME_NO, /* SCLKME = 0 与CLKSM配合使用,cpu时钟模式*/

0, /* DXSTAT = N/A DX引脚上的电平*/

1, //MCBSP_PCR_FSXP_ACTIVELOW, /* 重要FSXP = 0 发送帧同步极性,0正极性,1负极性*/

0,//MCBSP_PCR_FSRP_ACTIVELOW, /* 重要FSRP = 0 接收帧同步极性,0正极性,1负极性*/

0,//MCBSP_PCR_CLKXP_RISING, /* 重要CLKXP = 0 发送时钟极性,0正极性,1负极性*/

1 //MCBSP_PCR_CLKRP_FALLING /* 重要CLKRP = 0 接收时钟极性,0正极性,CLKR引脚上的上升沿,产生CLKG的上升沿,1负极性*/ ), MCBSP_RCERA_DEFAULT, MCBSP_RCERB_DEFAULT, MCBSP_RCERC_DEFAULT, MCBSP_RCERD_DEFAULT, MCBSP_RCERE_DEFAULT, MCBSP_RCERF_DEFAULT, MCBSP_RCERG_DEFAULT, MCBSP_RCERH_DEFAULT, MCBSP_XCERA_DEFAULT, MCBSP_XCERB_DEFAULT, MCBSP_XCERC_DEFAULT, MCBSP_XCERD_DEFAULT, MCBSP_XCERE_DEFAULT, MCBSP_XCERF_DEFAULT, MCBSP_XCERG_DEFAULT, MCBSP_XCERH_DEFAULT };

我有一个最大的疑惑,如何在一帧数据中,每帧一字,字长16bit。前八位是DSP写入AD9857,后八位是DSP从AD9857是读入数据