int main(int argc, char* argv[]) { // At this stage the system clock should have already been configured // at high speed. GPIO_InitTypeDef GPIO_InitStruct; /* Peripheral clock enable */ __GPIOA_CLK_ENABLE(); // Configure pin in output push/pull mode GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; GPIO_InitStruct.Pull = GPIO_PULLUP; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); if (InitMPU() == HAL_OK) { HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); } // Infinite loop while (1) { // Add your code here. } }
// // We initialize the UART with interrupts suppressed so we don't // try to service the chip prematurely. // NTSTATUS CMiniportDMusUART::InitializeHardware(PINTERRUPTSYNC interruptSync,PUCHAR portBase) { PAGED_CODE(); NTSTATUS ntStatus; if (m_UseIRQ) { ntStatus = interruptSync->CallSynchronizedRoutine(InitMPU,PVOID(portBase)); } else { ntStatus = InitMPU(NULL,PVOID(portBase)); } if (NT_SUCCESS(ntStatus)) { // // Start the UART (this should trigger an interrupt). // ntStatus = ResetHardware(portBase); } else { _DbgPrintF(DEBUGLVL_TERSE,("*** InitMPU returned with ntStatus 0x%08x ***",ntStatus)); } m_fMPUInitialized = NT_SUCCESS(ntStatus); return ntStatus; }