杰理692x一共有3个uart,ide不支持在线仿真,所以要使用串口debug
bebug
先到sdk_cfg.h文件下,选择debug的串口,和io口,以及波特率,如上注释(从sdk_const_define.h复制),默认配置 8bit 1stop 无奇偶校验
包含头文件uart.h,配置好之后就可以printf进行串口打印了
串口配置
如果工程中需要使用到串口,则需要到uart.c中进行配置,个人不喜欢杰理的封装,将代码抽出来写成了自己的串口配置函数,将cpu目录下的uart.c打开,找到这个函数s32 uart_debug_int(u32 baud_rate),以这个内容做参考修改
下面uart0的中断函数
void uart0_isr_fun()
{
u8 uto_buf;
if ((JL_UART0->CON0 & BIT(3)) && (JL_UART0->CON0 & BIT(14))) {
uto_buf = JL_UART0->BUF;
JL_UART0->CON0 |= BIT(12);
if (uart_info[0].callback_fun) {
uart_info[0].callback_fun(uto_buf, rx_uart0_buf, UART_ISR_TYPE_DATA_COME);
}
}
/* 发送完成中断 */
if ((JL_UART0->CON0 & BIT(2)) && (JL_UART0->CON0 & BIT(15))) {
//TX PND
JL_UART0->CON0 |= BIT(13); //清TX PND
if (uart_info[0].callback_fun) {
uart_info[0].callback_fun(0, NULL, UART_ISR_TYPE_WRITE_OVER);
}
}
if (JL_UART0->CON0 & BIT(11)) {
//OTCNT PND
JL_UART0->CON0 |= BIT(10); //清OTCNT PND
JL_UART0->CON0 |= BIT(7); //RDC
asm volatile("nop"); //写RDC立刻读JL_UART1->HRCNT会有问题