#include "MDR32F9Qx_config.h"
#include "MDR32F9Qx_board.h"
#include "MDR32Fx.h"
#include "MDR32F9Qx_uart.h"
#include "MDR32F9Qx_port.h"
#include "MDR32F9Qx_rst_clk.h"
static PORT_InitTypeDef PortInit;
static UART_InitTypeDef UART_InitStructure;
volatile uint32_t delay_dec = 0;
void SysTick_Handler(void)
{
if (delay_dec != 0) delay_dec--;
}
void delay_ms(uint32_t delay_ms)
{
delay_dec = delay_ms;
while (delay_dec != 0) {};
}
int main(void)
{
uint8_t i = 0;
SysTick->LOAD = (8000000 / 1000) - 1;
SysTick->CTRL |= SysTick_CTRL_CLKSOURCE_Pos;
SysTick->CTRL |= SysTick_CTRL_COUNTFLAG_Pos;
SysTick->CTRL |= ~SysTick_CTRL_ENABLE_Pos;
RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTB,ENABLE);
PortInit.PORT_PULL_UP = PORT_PULL_UP_OFF;
PortInit.PORT_PULL_DOWN = PORT_PULL_DOWN_OFF;
PortInit.PORT_PD_SHM = PORT_PD_SHM_OFF;
PortInit.PORT_PD = PORT_PD_DRIVER;
PortInit.PORT_GFEN = PORT_GFEN_OFF;
PortInit.PORT_FUNC = PORT_FUNC_ALTER;
PortInit.PORT_SPEED = PORT_SPEED_MAXFAST;
PortInit.PORT_MODE = PORT_MODE_DIGITAL;
PortInit.PORT_Pin = PORT_Pin_5;
PORT_Init(MDR_PORTB, &PortInit);
PortInit.PORT_OE = PORT_OE_IN;
PortInit.PORT_Pin = PORT_Pin_6;
PORT_Init(MDR_PORTB, &PortInit);
RST_CLK_CPU_PLLconfig (RST_CLK_CPU_PLLsrcHSIdiv2,0);
RST_CLK_PCLKcmd(RST_CLK_PCLK_UART1, ENABLE);
UART_BRGInit(MDR_UART1, UART_HCLKdiv1);
UART_InitStructure.UART_BaudRate = 115000;
UART_InitStructure.UART_WordLength = UART_WordLength8b;
UART_InitStructure.UART_StopBits = UART_StopBits1;
UART_InitStructure.UART_Parity = UART_Parity_No;
UART_InitStructure.UART_FIFOMode = UART_FIFO_ON;
UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_RXE |UART_HardwareFlowControl_TXE;
UART_Init (MDR_UART1,&UART_InitStructure);
UART_Cmd(MDR_UART1,ENABLE);
while (1)
{
UART_SendData (MDR_UART1, i++);
delay_ms(5000);
}
}