本帖最后由 Gavin3389 于 2021-8-14 16:12 编辑
刚接触新唐,还是不太熟悉,
但是吧,各种函数,一旦用起来,
感觉新唐的风格,还是很舒服的。
今天加班累了,看看串口
在例程的基础上改了下,
实现功能:
串口助手发送数据给开发板
开发板返回给串口助手同样的数据。
main函数删减到最精简
int32_t main(void)
{
/* Init System, IP clock and multi-function I/O. */
SYS_Init();
/* Init UART0 for printf */
UART0_Init();
GPIO_Init();
printf("\n\nCPU [url=home.php?mod=space&uid=72445]@[/url] %dHz\n", SystemCoreClock);
printf("+-------------------------------------------------+\n");
printf("| M471KI8AE Study test |\n");
printf("+-------------------------------------------------+\n\n");
while(1)
{
PB14 = 0;
delay_ms(500);
PB14 = 1;
delay_ms(500);
};
}
串口中断函数
void UART0_IRQHandler(void)
{
if (UART_GET_INT_FLAG(UART0,UART_INTSTS_RDAINT_Msk))
{
while(!UART_GET_RX_EMPTY(UART0))
g_u8RecData[g_u32comRhead++] = UART_READ(UART0);
UART_Write(UART0, g_u8RecData, g_u32comRhead);
}
g_u32comRhead = 0;
//UART_TEST_HANDLE();
}
串口初始化
/*----------------------------------------------------------------------*/
/* Init UART0 */
/*----------------------------------------------------------------------*/
void UART0_Init(void)
{
SYS_ResetModule(UART0_RST); // Reset UART0
UART_Open(UART0, 115200); //Configure UART0 and set UART0 baud rate
/* Enable UART RDA and THRE interrupt */
NVIC_EnableIRQ(UART0_IRQn);
UART_EnableInt(UART0, UART_INTEN_RDAIEN_Msk);
// UART_EnableInt(UART0, (UART_INTEN_RDAIEN_Msk | UART_INTEN_THREIEN_Msk));
}
CRT向开发板发送 abcd
收到返回的 abcd
比较简单,主要先把串口打通,然后在干点其他的。
|