搜索
bottom↓
回复: 8

有用超核的朋友吗?DMA配置串口到内存怎么都不对

[复制链接]

出0入0汤圆

发表于 2015-4-19 09:53:19 | 显示全部楼层 |阅读模式

刚开始学习 用的朝核2.5  功能:将串口2接收数据存放到内存数组中  ,在WHILE中不停打印出这个数组的值 发现怎么都不对 代码如下:
DMA初始化:
/* DMA 串口接收 配置 */
static void UART_DMARevInit(uint32_t uartInstnace, uint8_t dmaChl, uint8_t * rxBuf)
{
    DMA_InitTypeDef DMA_InitStruct1 = {0};
    DMA_InitStruct1.chl = dmaChl;
    DMA_InitStruct1.chlTriggerSource = UART_RevDMATriggerSourceTable[uartInstnace];
    DMA_InitStruct1.triggerSourceMode = kDMA_TriggerSource_Normal;
    DMA_InitStruct1.minorLoopByteCnt =  16;
    DMA_InitStruct1.majorLoopCnt = 1;

    DMA_InitStruct1.sAddr = (uint32_t)&UART2->D;
    DMA_InitStruct1.sLastAddrAdj = 0;
    DMA_InitStruct1.sAddrOffset = 0;
    DMA_InitStruct1.sDataWidth = kDMA_DataWidthBit_8;
    DMA_InitStruct1.sMod = kDMA_ModuloDisable;

    DMA_InitStruct1.dAddr = (uint32_t)rxBuf;
    DMA_InitStruct1.dLastAddrAdj =-16;
    DMA_InitStruct1.dAddrOffset = 1;
    DMA_InitStruct1.dDataWidth = kDMA_DataWidthBit_8;
    DMA_InitStruct1.dMod = kDMA_ModuloDisable;
    DMA_Init(&DMA_InitStruct1);
    /* 完成 Major Loop 后不停止 Request 继续等待DMA硬件触发源触发 */
   // DMA_EnableAutoDisableRequest(dmaChl, false);
}

main中 对串口初始化:
UART_QuickInit(UART2_RX_PD02_TX_PD03, 115200);
/* 配置DMA 打开UART_Rx_DMA功能 */
    UART_ITDMAConfig(HW_UART2, kUART_DMA_Rx, true);
    UART_DMARevInit(HW_UART2, DMA_REV_CH, UART_Buffer);

DMA_EnableRequest(DMA_REV_CH);
    while(1)
    {
       unsigned char i;
        printf("%d =%x\r\n",i,UART_Buffer[i]);
        i++;
        if(i==16) i=0;
        DelayMs(500);
    }


输出的数据 :不停的是我接收数组的最后一个值 0x55 (0XAA 0X01 .....最后肯定是0x55) 这样8个字节 一般一次发两组数据 共16个字节。
大家帮我看看 哪里配置的不对 ,实在搞不出来了。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2015-4-21 10:57:14 来自手机 | 显示全部楼层
超核有文档说明这些函数或程序咋用不?

出0入8汤圆

发表于 2015-4-21 11:09:02 | 显示全部楼层
超核是个啥东西  求科普

出0入0汤圆

发表于 2015-4-21 11:47:00 | 显示全部楼层
justdomyself 发表于 2015-4-21 11:09
超核是个啥东西  求科普

百度搜一下不就知道了

出0入8汤圆

发表于 2015-4-21 12:09:31 | 显示全部楼层
超核是波兰科学家M.丹尼什和J.普涅夫斯基在1952年从暴露在宇宙线中的核乳胶里发现的。超核的发现,不仅证明了核由中子和质子组成,对于研究核子和超子之间的相互作用,以及超子进入原子核中后对其运动形态的影响都有重要作用。
中文名超核
类    别含有超子(见奇异粒子)的原子核
发现时间1952年
发现人科学家M.丹尼什和J.普涅夫斯基
含有超子(见奇异粒子)的原子核。最早发现的超核是含有一个Λ超子的Λ

超核,它是波兰科学家M.丹尼什和J.普涅夫斯基在1952年从暴露在宇宙线中的核乳胶里发现的。由于Λ超子是最轻的奇异重子,而强相互作用要求奇异数和重子数守恒,因此Λ超子在核物质中相对于强相互作用是稳定的,只能产生弱相互作用衰变。这使得Λ超核和Λ超子有几乎相同的寿命(大约为2×10秒)。因而在实验上比较容易观察到Λ超核。到目前为止,人们已经发现了几十种Λ超核,例如H、H、He、H、Be、C等。另外,还发现了两种含有两个Λ超子的双Λ超核(掆He和抍Be)。除了Λ超核外,还发现了∑超核。理论上还预言有可能发现Ξ超核,但实验上至今没有观察到。 [1]
产生超核的方法主要是通过奇异交换反应:
由于在这些反应中,K介子带的奇异数转移到Λ或∑超子上,因此称其为奇异交换反应。通过这些反应,实验物理学家已经测量到一系列相当清晰的超核激发能谱,为开展超核能谱学的理论研究创造了良好的条件。
应当注意,由于超核是一个由三类粒子(中子、质子和超子)组

成的多体系统,它比原子核有更多的激发方式。例如,在Λ超核和双 Λ超核中可能有五个粒子或六个粒子空间全对称的态,即所谓超对称态。这是普通原子核所没有的新型激发态。因此研究超核的运动规律具有更特殊的意义。[1]

出0入0汤圆

发表于 2015-4-21 18:14:12 | 显示全部楼层
justdomyself 发表于 2015-4-21 12:09
超核是波兰科学家M.丹尼什和J.普涅夫斯基在1952年从暴露在宇宙线中的核乳胶里发现的。超核的发现,不仅证明 ...

你搜超核电子
呵呵
不过山外又该忙活了

出0入0汤圆

 楼主| 发表于 2015-4-23 22:43:28 | 显示全部楼层
解决方法:
DMA_InitStruct1.minorLoopByteCnt =  16;  ->  DMA_InitStruct1.minorLoopByteCnt =  1;
    DMA_InitStruct1.majorLoopCnt = 1;  --->DMA_InitStruct1.majorLoopCnt = 16;
换成这样 收到的数据就OK了 但是心里还是没底的 感觉怪怪的
  

出0入0汤圆

发表于 2015-4-29 09:20:31 | 显示全部楼层
shouzhou 发表于 2015-4-23 22:43
解决方法:
DMA_InitStruct1.minorLoopByteCnt =  16;  ->  DMA_InitStruct1.minorLoopByteCnt =  1;
     ...

关于DMA主循环、次循环的相关概念,你可以看一下论坛里的帖子:【Kinetis内部培训资料】eDMA模块

至于超核库具体怎么使用,还是得看他们得手册呢。

出0入0汤圆

发表于 2015-5-13 16:32:27 | 显示全部楼层
非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 15:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表