请问如何向LM3S9B90的RAM里传输数据

2019-03-24 13:30发布

外接设备的并口,8位输出,16位输入。

如何向LM3S9B90的MCU-RAM里传输数据,不是ROM。
目的就是数据通过外设的并口与LM3S通讯,暂存在RAM里,之后再将数据分析,筛选,传输到别的目标板上。

外设并口数据输出没问题,已经确认;
LM3S如何接受?用GPIORead接受,时序总是不对;

请问直接用GIPORead读取数据的办法可行么?
如果可行,设置那里有问题?
如果不可行,使用EPI功能么?由于外设的输出只有8位,用EPI功能引脚不够怎么处理呢?

/***********************************************************************/
程序如下,想用GPIO_D 的0x10位作为,中断控制位,0x0F接受数据。
但是接受数据的个数以及数据值不稳定,不对的时候比较多。
void
GPIOEIntHandler(void)
{
GPIOPinIntClear(GPIO_PORTD_BASE, 0x10);
PinBit = GPIOPinRead(GPIO_PORTD_BASE, 0x0F);
testBuf[testNum] = PinIOIn;
testNum++;
}
main()
{
ROM_SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);

ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, 0x0F);
GPIOPadConfigSet(GPIO_PORTD_BASE, 0x10, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD);
GPIOIntTypeSet(GPIO_PORTD_BASE, 0x10, GPIO_LOW_LEVEL);
ROM_GPIOPinIntEnable(GPIO_PORTD_BASE, 0x10);

while(1)
{}
}

另附外设输入部分
for(i =0; i<ram_size;i++)
{
one_byte = *buf &0xff;
*buf++;

status = out1bit(bit_4, 0);//GPIO_D的0X10位置0,允许进入LM3S的GPIO中断
status = out1bit(one_byte);
status - out1bit(bit_4,1);//关闭LM3S的GPIO中断
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
Study_Stellaris
2019-03-24 18:36
应该是要考虑用 EPI 或者用 GPIO 的位带操作试一下。

一周热门 更多>

相关问题

    相关文章