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.

[参考译文] Starterware/TM4C1294NCPDT:TM4C1294ncpdt

Guru**** 1794070 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/572365/starterware-tm4c1294ncpdt-tm4c1294ncpdt

器件型号:TM4C1294NCPDT

工具/软件:Starterware

尊敬的先生:

我们正在使用设计的电路板和基本 GPIO 代码、但我们正在发现同一条线的复位行为不同。

1我们使用1S 延迟,然后 LED 恰好在1S 之后闪烁。

2当我们应用复位时、它将闪烁时间更改为400ms、如 CRO 中所示。

我们是该控制器的新手、我在 CCS 示例中发布了我使用的代码。

#include
#include
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/gpio.h"
#include "drivers/pinout.h"
#include "driverlib/pin_map.h"
#include "driverlib/rom.h"
#include "driverlib/rom_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/ssi.h"
#include "driverlib/uart.h"
#include "utils/uartstdio.h"
#include "drivers/buttons.h"


#define NUM_SSI_DATA 3 //要发送和接收的字节数。


uint32_t g_ui32SysClock;//系统时钟速率、单位为 Hz。

#ifdef 调试
无效
_error__(char * pcFilename、uint32_t ui32Line)


#endif


void delayms (int ms){
SysCtlDelay((SysCtlClockGet()/(3*1000)*ms );


无效
InitConsole (空)

SysCtlPeripheralEnable (SYSCTL_Periph_GPIOJ);//启用用于 UART0引脚的 GPIO 端口 A。


GPIOPinConfigure (GPIO_PJ0_U3RX);//配置 UART0引脚 A0。
GPIOPinConfigure (GPIO_PJ1_U3TX);//配置 UART0引脚 A1。


SysCtlPeripheralEnable (SYSCTL_Periph_UART3);//启用 UART0以便我们可以配置时钟。


UARTClockSourceSet (UART3_base、UART_CLOCK _PIOSC);//使用内部16MHz 振荡器作为 UART 时钟源。


GPIOPinTypeUART (GPIO_PORTJ_BASE、GPIO_PIN_0 | GPIO_PIN_1);//配置 GPIO 端口 A 引脚


UARTStdioConfig (0、115200、16000000);//初始化控制台 I/O 的 UART

内部
main (空)

volatile uint32_t ui32Loop;
uint32_t pui32DataTx[NUM_SSI_DATA];
uint32_t pui32DataRx[NUM_SSI_DATA];
uint32_t ui32Index;


G_ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |//从 PLL 以120MHz 运行。
SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480)、120000000);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOQ);

while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOQ));
GPIOPinTypeGPIOOutput (GPIO_PORTQ_BASE、GPIO_PIN_1_GPIO_PIN_0);
PinoutSet (false、false);//配置器件引脚。

InitConsole();//设置串行控制台以用于显示消息。

SysCtlPeripheralEnable (SYSCTL_Periph_GPION);//启用用于板载 LED 的 GPIO 端口。

SysCtlPeripheralEnable (SYSCTL_Periph_SSI3);//必须启用 SSI0外设才能使用。

SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF);//需要启用 GPIO 端口 A 以便可以使用 SSI 引脚。


GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、GPIO_PIN_1);//为 LED 启用 GPIO 引脚(PN0)。


GPIOPinConfigure (GPIO_PF3_SSI3CLK);//在 PA2上配置 SSI SCLK

GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、GPIO_PIN_2);//~CS -将其配置为 GPIO 输出

GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、GPIO_PIN_1);//~CS -将其设置为逻辑高电平

GPIOPinConfigure (GPIO_PF1_SSI3XDAT0);//在 PA4上配置 MOSI

GPIOPinConfigure (GPIO_PF0_SSI3XDAT1);//在 PA5上配置 MISO


GPIOPinTypeSSI (GPIO_PORTF_BASE、GPIO_PIN_0| GPIO_PIN_1 | GPIO_PIN_3);//配置 SSI 引脚的 GPIO 设置。


SSIConfigSetExpClk (SSI3_base、g_ui32SysClock、SSI_FRF_MOTO_MOTO_MODE_0、//为 SPI 主控模式配置和启用 SSI 端口。 使用 SSI3、
SSI_MODE_MASTER、1000000、8);//系统时钟电源、空闲时钟电平低电平和低电平有效时钟输入
//飞思卡尔 SPI 模式、主控模式、1MHz SSI 频率和8位数据。


SSIEnable (SSI3_base);//启用 SSI0模块。


//
//初始化要发送的数据。
//


pui32DataTx[0]= 0x30;//读取模式
pui32DataTx[1]= 0x5A;//要读取的寄存器地址
pui32DataTx[2]= 0x55;//虚拟字节生成 SCLK 以从 MISO 读取1个字节


//
//发送3个字节的数据。
//

GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、0);//~CS -将其设置为逻辑低电平-开始传输
SysCtlDelay(1);


for (ui32Index = 0;ui32Index < NUM_SSI_DATA;ui32Index++)

SSIDataPut (SSI3_base、pui32DataTx[ui32Index]);
SSIDataPut (SSI3_base、pui32DataRx[ui32Index]);

SysCtlDelay(1);

GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、0x1);//~CS -将其设置为逻辑高电平-传输结束*/


while (1)

GPIOPinWrite (GPIO_PORTQ_BASE、GPIO_PIN_1、GPIO_PIN_1);

delayMS (10000);//延迟15ms

GPIOPinWrite (GPIO_PORTQ_BASE、GPIO_PIN_1、0x0);
delayMS (10000);//延迟15ms


UARTprintf ("正在检查 TX 和 RX 数据...\n");//检查 pui32DataRx 的内容
UARTprintf ("i\TTX\TRx\n");
UARTprintf ("------------------------ \n");
for (ui32Index = 0;ui32Index < NUM_SSI_DATA;ui32Index++)

UARTprintf ("%d\t'%c'\t'%c'\n"、ui32Index、
*(pui32DataTx+ui32Index)、
*(pui32DataRx+ui32Index));
GPIOPinWrite (GPIO_PORTQ_BASE、GPIO_PIN_0、GPIO_PIN_0);

请就此问题提出建议,因为我们也无法就其他议定书开展工作。

注:控制器电源正常,为3.3V。

此致、

Sateesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    将此主题移至 TM4C 微控制器论坛。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Sateesh

    您是否曾尝试创建简单的 LED 环路、而不是将 UART 和 SSI 函数与 GPIO 切换一同放置、然后测试器件?