HK030M是否可以有USART中断?
我在做串口的传输测试,想做一个电脑的串口工具输出什么字符,能让MCU转发出来到串口工具显示.可电脑发出去的字符,MCU接收不到,不知道是否串口中断没有生效:如下:
hk32f030m_it.c文件中定义中断函数:
void USART1_IRQHandler(void)
{
uint8_t ucTemp;
if(USART_GetITStatus(DEBUG_USARTx,USART_IT_RXNE)!=RESET)
{
ucTemp = USART_ReceiveData(DEBUG_USARTx);
Usart_SendByte(DEBUG_USARTx,ucTemp);
}
}
--------------------------------------------------------------------------------------------------
在bsp_usart.c定义中断源等,并设置USART端口:
static void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = DEBUG_USART_IRQ;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
//NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
----------------------------------------------
void USART_Config(void)
{
中间省略:......................
USART_Init(DEBUG_USARTx, &USART_InitStructure);
USART_ITConfig(DEBUG_USARTx, USART_IT_RXNE, ENABLE);
USART_Cmd(DEBUG_USARTx, ENABLE);
NVIC_Configuration();
}
大家帮忙看看对吗?
有我们的DEMO 吗, 可以直接用我们的例程测试 本帖最后由 bestdesign11 于 2021-3-19 12:56 编辑
看到例程中的中断语句了:static void USART_NVIC_Configurature(void)
{
NVIC_SetPriority(USART1_IRQn,0);
NVIC_EnableIRQ(USART1_IRQn);
}
void USART1_IRQHandler(void)
{
uint8_t ch_rx_test;
if((USART1->ISR & USART_ISR_RXNE) != 0)
{
ch_rx_test = USART1->RDR;
USART_SendByte(ch_rx_test);
}
}
请问这个USART1_IRQHandler函数不用放到hk32f030m_it.c这个文件中去,对吗?
放在 usart.c中也能响应到?
bestdesign11 发表于 2021-3-19 09:03
看到例程中的中断语句了:static void USART_NVIC_Configurature(void)
{
NVIC_SetPriority(USART1_IRQn,0) ...
可以的,放在哪个.c文件都可以
页:
[1]