请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C129ENCPDT 工具/软件:TI C/C++编译器
您好!
我将端口 M 引脚配置为输出引脚、以便能够向外部 ADC 芯片输出一些脉冲。
我已经按照如下所示配置了端口、没有编译器错误或警告、但是我在 PM4和 PM5引脚上看不到任何脉冲。
int main (void) { //将系统时钟初始化为120MHz // uint32_t ui32SysClock; ui32SysClock = ROM_SysCtlClockFreqSet ( (SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、 System_clock); assert (ui32SysClock = system_clock); //初始化除 USB 和以太网外连接到 Launchpad 的所有外设、例如 LED、用户按钮和 UART0 PinoutSet (false、false); //初始化系统 sys_init(); //创建任务 xTaskCreate (demLEDTask、(const portCHAR *)"LED"、 configMINIMAL_STACK_SIZE、NULL、1、NULL); xTaskCreate (SerialTask、(const portCHAR *)"Serial"、 configMINIMAL_STACK_SIZE、NULL、1、NULL); xTaskCreate (spi0_receive、(const portCHAR *)"SPI0"、 configMINIMAL_STACK_SIZE、NULL、3、NULL); xTaskCreate (ADC_START、(const portCHAR *)"ADCSTART"、 configMINIMAL_STACK_SIZE、NULL、2、NULL); vTaskStartScheduler(); 返回0; } void sys_init (void) { uint32_t i; //设置连接到虚拟 COM 端口的 UART UARTStdioConfig (0、57600、system_clock); // //必须启用 SSI0外设才能使用。 // SysCtlPeripheralEnable (SYSCTL_Periph_SSI0); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOM); …
引脚定义和端口初始化函数;
请注意、这是一个外部 ADC 芯片答案请勿与微控制器的内部 ADC 相混淆。
#define ADC_OS0 GPIO_PIN_0 //PM0 #define ADC_OS1 GPIO_PIN_1 //PM1 #define ADC_OS2 GPIO_PIN_2 //PM2 #define ADC_BUSY GPIO_PIN_3 //PM3 #define ADC_CNVSTARTA GPIO_PIN_4 //PM4 #define ADC_CNVSTARTB GPIO_PIN_5 //PM5 #define ADC_RANGE GPIO_PIN_6 //PM6 #define ADC_RESET GPIO_PIN_7 //PM7 #define ADC_CS GPIO_PIN_2 //PN2 #define ADC_READ GPIO_PIN_3 //PN3 #define ADC_CTRL1_PORT GPIO_PORTM_BASE #define ADC_CTRL2_PORT GPIO_PORTN_BASE #define ADC_LSB_PORT GPIO_PORTD_base #define ADC_MSB_PORT GPIO_PORTK_base void ADC_init (void) { ROM_GPIOPinTypeGPIOOutput (ADC_CTRL1_PORT、ADC_OS0 | ADC_OS1 | ADC_OS2 | ADC_CNVSTARTA | ADC_CNVSTARTB | ADC_RANGE | ADC_RESET); ROM_GPIOPinTypeGPIOOutput (ADC_CTRL2_PORT、ADC_CS | ADC_READ); ROM_GPIOPinTypeGPIOInput (ADC_CTRL1_PORT、ADC_BUSY);//将 ADC_BUSY 引脚配置为输入 ROM_GPIOPinTypeGPIOInput (ADC_MSB_PORT、0xFF);//将 ADC MSB 数据引脚配置为输入 ROM_GPIOPinTypeGPIOInput (ADC_LSB_PORT、0xFF);//将 ADC LSB 数据引脚配置为输入 GPIOPadConfigSet (ADC_CTRL1_PORT、ADC_CNVSTARTA | ADC_CNVSTARTB、 GPIO_Strength _2mA、GPIO_PIN_TYPE_STD); } void ADC_start (void * pvParameters) { uint32_t i; for (;;) { GPIOPinWrite (ADC_CTRL1_PORT、ADC_CNVSTARTA、0x0); GPIOPinWrite (ADC_CTRL1_PORT、ADC_CNVSTARTB、0x0); for (i=0;i<42949;i++){} GPIOPinWrite (ADC_CTRL1_PORT、ADC_CNVSTARTA、0x1); GPIOPinWrite (ADC_CTRL1_PORT、ADC_CNVSTARTB、0x1); vTaskDelay (1000); } }
我不知道是什么,我是不是什么?
下面是我的逻辑分析仪的快照、显示 A3和 A4 (分别连接到 PM4和 PM5)为低电平。