我有一个由 SysTick 中断调用的函数、用于将软件中的传输缓冲区中的字符加载到器件的 Uart4 TX 缓冲区中。 如果每个中断有10个字符、并且器件的 TX 缓冲区中有空间、则最多可以添加10个字符。 该功能如下所示:
/*********
函数: Uart4_Load_TX_Buffer
说明: 此函数由 SysTick 中断例程和调用
从 Uart4循环缓冲区加载多达10个字符
器件的 TX 缓冲器。 该例程在任一时间返回时返回
器件 TX 缓冲区已满、已加载10个字符或
没有更多字符可供发送。
参数: 无
返回: 无
秘书长的报告 /
空 Uart4_Load_TX_Buffer (空)
{
int 索引= 0;
//禁用中断
ROM_IntMasterDisable();
//检查是否满足所有条件
while (索引< 10 &&
COM4_TX_Head!= COM4_TX_Tail &&
//ROM_UARTSpaceAvail (UART4_base)
UARTSpaceAvail (UART4_base)
)
{
//递增索引
++索引;
//将下一个字符发送到器件 TX 缓冲区
// ROM_UARTCharPutNonBlocking (UART4_base、COM4_TX_Buffer[COM4_TX_Tail]);
//使缓冲区尾部递增
+++COM4_TX_Tail;
//检查回绕
IF (COM4_TX_Tail >= Com4TXBufferSize)
{
//复位到缓冲区的开头
COM4_TX_Tail = 0;
}
}
//启用中断
ROM_IntMasterEnable();
}
1.如果我参加了 Space Available 测试、并且 CHARPut 函数运行无故障、
2.如果我添加了任何可用空间、并且 Char 放置了故障 ISR、我不确定原因。
3.在中断中使用这些函数是否有任何限制?
4.在初始化 UART 时是否有特殊的顺序允许函数工作?
5.由于我使用 SysTick 中断加载 TX 缓冲区、是否有针对 UART 的推荐 UART 设置? 我假设我不需要使用 TX 中断、因为我根据字符空间的可用性填充缓冲区。65。 是否有一个在中断中实际使用这些函数的示例、在这里我可以看到需要在中断和 UART 中设置什么才能使这些函数运行? 当文档以最简单的形式编写时、我会遇到问题、并会留下实际示例来说明函数的实际工作方式。