Thread 中讨论的其他器件:EK-TM4C1294XL
工具/软件:Code Composer Studio
朋友们、您好!
IAM 工作 tm4c1294xl 评估套件我使用 uDMA 传输功能使用 ADC 采样序列发生器3。 我的问题是无法打印使用 ADC 采样的值。 IAM 通过此帖子附加代码可以帮助解决此问题。
#include
#include
include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "inc/hw_uart.h"
#include "driverlib/fpu.h"
#include
"driverlib/driverlib_interrupt.h"
#include "driverlib.driver.h"#driverlib/driverlib#driverlib.utils/ude/drivers.mdio.ide"#include
"drivers.mdio.mdio.ide"
#include "#include "#driver.h"#include "driverlib_util.mdio.md.ine"#include "#driver.h"
define MEM_buffer_size 1024
//#define UART_TXBUF_size 256
//#define UART_RXBUF_size 256
// static uint32_t g_ui8TxBuf[UART_TXBUF_SIZE];
static uint32_t g_ui8RxBufA[1];
static u32_uuuint32_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu32_uuuuuuuuuuuuut
=静态32 uuuuuuuuuuuuuuuuuuuuuuint32uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
#elif defined (CCS)
#pragma DATA_ALIGN (pui8ControlTable、1024)
uint8_t pui8ControlTable[1024];
#else
uint8_t pui8ControlTable[1024]__attribute__((aligned (1024)));
#endif
#ifdef #ifdef #if_error__(uintu32_uu_uategr
u32uuuuuuuuuuuuuuuuuuuuuuuuatr uuui32 uuuuuuuuuuuuuuuuui32 uuuuuuuuuuuuuuuuuui32 uuuuuuuuuuuuuuuuuuint32 uuuuuu32 uuuuuuuuuuuuuuuui32 uuuuuuuuuuuuuuuuui32 uuuuuuuuuuuuuuuuuu32
ui16Idx < 1; ui16Idx++)
{
UARTprintf ("在接收器端打印");
UARTprintf (" hello receiver %d "、g_ui8RxBufA[ui16Idx]);
}
ADCIntClearEx (ADC0_BASE、ADC_INT_DMA_SS0 | ADC_INT_UCC0_UCC0_UCC0_DE_AM_AM_UCC0);(
UCC0_UCC0_UCC_UCC_UCC0_U80_UCC_UCC0_AM_AM_AM_U80_AM_AM_AM_U80_AM_AM_AM_AM_U80_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_TRU80_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_AM_TRU
if (uDMAChannelModeGet (uDMA_CHANGE_ADC0 | UDMA_ALT_SELECT)== UDMA_MODE_STOP){
//找到完整缓冲
区//重新设置到缓冲区
uDMAChannelTransferSet ((UDMA_CHANGE_ADC0 | UDMA_RESTON_DET)的 DMA 传输(uDMA_RESTON_U8B)、UFF_U0_U0_U0_U0_U0_UDB_U0_UFF_U0_U0_U0_U0_U0_U0_U0_U0_U0_U0_UFF_U0_U0_U0_U
}
空
InitUART1传输(void)
{
uint32_t div;
SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);
PeripherCtlPeripheralSleep Enable (SYSCTL_Periph_ADC0);
ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PLL、ADC_CLOCK_ADC0_ADCLOCK);ADCClock_FULL (ADCLOCK = ADCLOCK
);ADCLOCK (ADC0) 3 /*SS0*/、ADC_TRIGGER_AYSTEUSH、0 /*Priority*/);// SS0-SS3优先级必须始终不同
ADCSequenceStepConfigure (ADC0_BASE、3 / AttributeSS0*/、0、ADC_CTL_CH0 | ADC_CTL_END | ADC_CTL_IE);//
ADC0 (ADCADC0每隔3个 ADCADCTRIE_ADCADCADC0个 ADCADCTRIE_ADCADCTRIE_ADCADC0个 ADCADCADCADCADCADCTRIE_CAST_MARS;/ ADC0 (ADCADCADCADCADCADCADCADCAD
UARC_ATTR_ALTSELECT | UDMA_ATTR_USEBURST |
UDMA_ATTR_HIGH_PRIOR_8
| UDMA_ATTR_REQMASK);uDMAChannelControlSet (UDMA_CHANNE_ADC0 | UDMA_INC_ADDR_8 | UDA_ADDR_4
| UDA_ADDA_NOT_UDA_ADDR_8
| UDA_ADDA_ADDA_SDA_SOURCE_ADCC_0 | UART_UANCE_ADDR_8 | UDA_ADDR_NOT_UDA_ADDR_ADDR_8 | UDA_ADDR_ADDR_8 | UDA_ADDA_ADDA_INC_ADAP_ADAP_ADAP_ADAP_ADAP_8 | UART_UART_UART_ADDR_ADDR_ADDR_ADDR_8 | UANT_ADDR_ADDR_ADDR_ADDR_8 | UAN_ADAP_ADDR_8 | UAN_ADDR_ADDR
sizeof (g_ui8RxBufA));
uDMAChannelTransferSet (uDMA_CHANGE_ADC0 | UDMA_ALT_SELECT、
UDMA_MODE_Pingpong、
(void *)(ADC0_BASE)、
g_ui8RxBufB、 sizeof (g_ui8RxBufB));
uDMAChannelEnable (UDMA_CHANGE_ADC0);
ADCIntEnableEx (ADC0_BASE、ADC_INT_DMA_SS3);
IntEnable (INT_ADC0SS3);
}
空
配置 UART (void)
{
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
SysCtlPeripheralEnable (SYSCTL_Periph_UART0);
SysCtlPeripheralSleep Enable (SYSCTL_Periph_UART0);
GPIOPinConfigure (GPIO_PA0_U0RX);
GPIO_Pin0TX (GPIO_Configure);GPIO_PINTO_Configure)
GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_0 | GPIO_PIN_1);
UARTStdioConfig (0、115200、g_ui32SysClock);
}
int
main (void)
{
static uint32_t ui32 PrevUARTCount = 0;
uint32_t ui32XfersCompleded;
uint32_t ui32BytesTransfed;
SysCtlPeripheralEnable (sysctl_Periph_GPIOE);
GPIOTypeADC (GPIO_Porte _BASE、SysCtlPeripheralEnable) GPIO_PIN_3);
g_ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |
SYSCL_MAIN |
SYSCTL_USE_PLL |
SYSCTION_CFG_VCO_480)、120000000);
SysCtlPeripheralClockGating (TRUE);SYSCTL_UST_OUTPLIT_480)、SYSCOPPEPTL_GPIOBJUST_GPIOPTL
(TRL (TRL)、GPIORT_GPIORT_OUTPLIT_TOPHOTPLK (GPIORT_VOPTL) GPIO_PIN_0);
ConfigureUART ();
UARTprintf ("Tiva C 系列@%u MHz\n\n"、g_ui32CtlClock / 1000000);
UARTprintf ("cpu\tRemaining\tMemory\t\t UART\n");
UARTprintf ("Usage\ttime\t Transfers\n\t
);UARTSysCtlTransfers (")
SysCtlPeripheralSlepEnable (sysctl_Periph_UDMA);
IntEnable (INT_UDMAERR);
uDMAEnable();
uDMAControlBaseSet (pui8ControlTable);
InitUART1 Transfer ();
SysCtlSleep ();
UARTprintf ("\n Stopped\n");
IntDisable (INT_ADC0SS3);
IntDisable (INT_UDMA);
}
此致
Prudhvi