您好!
我将从 MSP 432开始。
我在一个引脚上连接了一个时钟源、在中断中、我切换另一个引脚。 (我需要读取一些串行数据)
如果时钟为10k 或以下、则一切正常、但如果时钟为100K、1M……+、则中断处理不正确。
我尝试对 TI RTOS 执行相同的操作、但情况相同。 我还尝试使用 SPI 处理数据、也尝试使用 SPI 处理数据。 :/
您能不能告诉我我出了什么问题? 48MHz 处理器应该可以轻松处理这一问题。
谢谢!
代码来自中断示例。
int main (void) { volatile uint32_t ii; /*停止看门狗*/ MAP_WDT_A_HOLDTimer(); /*将 P1.0配置为输出,将 P1.1 (开关)配置为输入*/ MAP_GPIO_setAsOutputPin (GPIO_PORT_P2、GPIO_PIN7); /*将 P1.1配置为输入并启用中断*/ MAP_GPIO_setAsInputPinWithPullUpResistor (GPIO_PORT_P1、GPIO_PIN5); // MAP_GPIO_setAsInputPin (GPIO_PORT_P1、GPIO_PIN5); MAP_GPIO_clearInterruptFlag (GPIO_PORT_P1、GPIO_PIN5); MAP_GPIO_enableInterrupt (GPIO_PORT_P1、GPIO_PIN5); MAP_Interrupt_enableInterrupt (INT_Port1); /*启用 SRAM 组保持*/ MAP_SYSCTL_enableSRAMBankRetention (SYSCTL_SRAM_BANK1); /*启用主中断*/ MAP_Interrupt_enableMaster(); /*转至 LPM3 */ while (1) { MAP_PCM_gotoLPM3 (); } } /* GPIO ISR */ void Port1_IRQHandler (void) { uint32_t status; STATUS = MAP_GPIO_getEnabledInterruptStatus (GPIO_PORT_P1); MAP_GPIO_clearInterruptFlag (GPIO_PORT_P1、状态); /*切换 LED 上的输出*/ IF (STATUS & GPIO_PIN5) { MAP_GPIO_toggleOutputOnPin (GPIO_PORT_P2、GPIO_PIN7); } }