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.
我目前只为 ADC 启用端口 E 引脚0、1、2、3。 我计划稍后使用 PE1至 PE3、但目前只读取 PE0。 我注意到其他三个引脚和所有未启用的 ADC 采样引脚都受 PE0上的读数影响。 例如、我将 PD0和 PD1设置为 GPIO 引脚、但当我在示波器上读取其输出时、它们是作为 ADC 引脚进行采样的。 我初始化的内容是否有问题? 我的评估板是全新的、我看不到它怎么会损坏。
下面是我 对 ADC 的初始化。
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE); SysCtlPeripheralEnable (SYSCTL_Periph_ADC0); SysCtlPeripheralEnable (SYSCTL_Periph_TIMER0); GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_3 | GPIO_PIN_2 | GPIO_PIN_1 | GPIO_PIN_0);//必须先启用 ADC TimerDisable (TIMER0_BASE、TIMER_A); TimerControlTrigger (TIMER0_BASE、TIMER_A、TRUE);//启用 ADC 的 TIMER0A 触发 TimerConfigure (TIMER0_BASE、TIMER_CFG_PERIODICASE); TimerLoadSet (TIMER0_BASE、TIMER_A、SysCtlClockGet ()/SAMPS_PER_SEC); TimerIntDisable (TIMER0_BASE、0xFFFFFFFF); //禁用此计时器的所有中断 TimerEnable (TIMER0_BASE、TIMER_A); ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_RATE_REST_Eighth、1); ADCSequenceDisable (ADC0_BASE、ADC_SEQUENCE2); ADCSequenceConfigure (ADC0_BASE、ADC_SEQUENCE2、ADC_TRIGGER_TIMER、0); ADCSequenceStepConfigure (ADC0_BASE、ADC_SEQUENCE2、0、ADC_CTL_CH3); ADCSequenceStepConfigure (ADC0_BASE、ADC_SEQUENCE2、1、ADC_CTL_CH2); ADCSequenceStepConfigure (ADC0_BASE、ADC_SEQUENCE2、2、ADC_CTL_CH1); ADCSequenceStepConfigure (ADC0_BASE、ADC_SEQUENCE2、3、ADC_CTL_CH0 | ADC_CTL_END | ADC_CTL_IE);//ADC_base、序列号、步长、设置标志和在第一个之后结束 ADCSequenceEnable (ADC0_BASE、ADC_SEQUENCE2);//ADC_base、sequence ADCIntEnable (ADC0_BASE、ADC_SEQUENCE2); ADCIntRegister (ADC0_BASE、ADC_SEQUENCE2、&ADC0Seq2_Handler); IntPrioritySet (INT_ADC0SS2、ADC_SEQUENCE2_PRIORITY); IntEnable (INT_ADC0SS2); ADCIntClear (ADC0_BASE、ADC_SEQUENCE2);
//这里是我的 GPIO 初始化代码
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB); GPIOPINTypeGPIOOutput (GPIO_PORTD_BASE、GPIO_PIN_0); GPIOPinTypeGPIOOutput (GPIO_PORTD_BASE、GPIO_PIN_1); GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、GPIO_PIN_2); GPIOPinTypeGPIOOutput (GPIO_PORTB_BASE、 GPIO_PIN_2); configureTimer1A ();
感谢 Bob 的解释! 当我不驱动其他引脚时、浮动电压对我来说很有意义。 但是、当我用正弦波驱动 PE0、用接地端驱动 PE2时、我仍然看到 PE2的电压读数发生变化、而不是被驱动到接地端。 如果我将 PE2接地或是否缺少任何东西、我不明白为什么 PE2不会处于0V?
对于 PD0和 PD1、引脚用作输出。 但是、我注意到、它们的输出没有达到预期。 我使用相同的代码、但 PD2和 PD3以及引脚输出符合预期。
下面是我演示我的意思的计划。 我想测试 GPIO 是否以我设置的计时器频率进行切换。 它在 PD2和 PD3上按预期工作、但如果我将 GPIO 引脚更改为 PD1和 PD0、它们不会以该计时器中断的频率输出。 相反、它们在我的 ADC 的采样频率下输出恒定的方波。 但是、我没有将 PD0和 PD1配置为 ADC 引脚、因此我认为是这样。
空 Timer1IntHandler (空){ GPIOPinWrite (GPIO_PORTD_base、GPIO_PIN_2、GPIO_PIN_2); GPIOPinWrite (GPIO_PORTD_BASE、GPIO_PIN_2、0x00); GPIOPinWrite (GPIO_PORTD_BASE、GPIO_PIN_3、 GPIO_PIN_3);
GPIOPinWrite (GPIO_PORTD_BASE、GPIO_PIN_3、0x00);
}
也许、除了"检查示波器的接地导线"之外、还可以将"尽可能短的"(甚至无引线)接地连接到探头的"圆形人体端子"。 (通常通过战略性放置的"线环"(连接到 GND)实现、它包围并接触探头的接地连接。) 我有一张高分辨率照片-说明-如果需要...
您和我"假设"在 PE2上应用了"适当的接地"-这应该(真的)-进行测试和确认。
还应询问是否有任何"有问题"的噪声或射频源在附近-这可能会对 PE2产生此类(奇怪)信号影响。
您的'123 LPAD 已将 PD0/PD1长时间"直接连接"PB6/PB7! 这已经众所周知-我们已经提出抗议-供应商从未改变过。 (已更正- imho) 如果您仔细查看(非常)-原理图确实显示(不幸的)交叉连接-但 "最全面"将会错过(小鼠类型)。
您可以通过删除"R9/R10"来断开这些(普遍不需要)交叉连接。 (位于用户 MCU 的正下方。) 我的公司"墓碑"这些 Rs (焊接一端-站起来)-这最好地表示 PCB -固定!
您能否详细介绍一下、您是如何将 PE2与电路板接地端相连的? 您是否可能连接了"相邻引脚?" (没有犯罪意图-确实发生了这种情况!) 并且-您是否在 MCU 的 PE2引脚上(直接)-和(非常)仔细地探测过? 不在"更易于访问"的电路板接头处。
此处有两个建议您"缩短"或(甚至)断开示波器的接地探头引线(将探头穿过接地/接触的电线回路)-以便可以实现"出色/净化器"电压测量。 未检测到响应/确认...
谢谢你。 我一直使用 PB6和 PB7来实现 PWM、这就说明了这一点。 移除 R9/R10意味着什么? 用小刀划痕?
我通过使用母-母线将 PE2接地端从 TM4C 接地端直接连接到 PE2。 然后、我通过将 PE2上的值与 UART 进行回显来进行测量。
[引用 USER="Oriana Wong"]我一直在 PWM 中使用 PB6和 PB7,因此可以解释这一点。
好的地方——“臭名昭著的双人”“又称了另一个受害者!” 您的"弊病"已解决!
[引用用户="Oriana Wong"]删除 R9/R10意味着什么?
我的意思是"仅此"组件移除。 去除并移除每个电阻器(同样、R9/R10)-这并不是太难-并且证明优于(任何)"走线切割"。 (电阻器一侧(偶数)施加的烙铁连同"温和"的力应该"将其自由弹出"。 (请戴上防护眼镜!)
[引述 USER="Oriana Wong"]I 通过使用母头-母头导线将 PE2接地端直接从 TM4C 接地端连接到 PE2。 [/报价]
我是否可以质疑您使用 "直接将 PE2接地"? 使用"可能"的3英寸母头跳线-以及 PE2 (左侧、接头)和(右侧、MCU 引脚)之间相当长的、偶然的 PCB 布线不符合直接条件! 这种长连接和间接连接不足以抵抗不需要的"信号拾取"。 (添加 PCB 接地线迹的"额外长度"-您创建了一个"天线"-您没有?) 必须施加直接接地、 "尽可能靠近 MCU 的 ADC 引脚!" 引脚"PE2"可能"不允许"这样的直接接地-因此我的(更改)建议...
您不能选择另一个模拟引脚、而不是"更进一步"而不是"直接与间接"-并使用它吗? 我认为您的 MCU 提供了"10-12个此类 ADC 功能引脚"-应该可以(快速/轻松)切换到另一个...