【龙芯1B例程】:串口中断实验

导读:本篇文章讲解 【龙芯1B例程】:串口中断实验,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

【龙芯1B例程】:串口中断实验
龙芯(只供学习,不可商用)

文章目录


前言

一、串口中断是什么?

二、开发步骤

1.龙芯1B串口驱动函数(内置)

2.串口中断示例代码

3.代码示例图

总结


前言

文章参考官方各类书籍,以及网络知识,如有侵权,请联系我立马删帖道歉!!!谢谢各位的关注,大家的关注才是我不断更新的动力!前段时间更新了串口的使用,但是忘了更新串口中断的使用,特此补充!有关串口的具体知识欢迎大家去浏览以前的文章!


一、串口中断是什么?

串口中断从大体上来讲,就是当串口数据寄存器接受到数据(串口正在工作中),这时候就会进入串口中断源,执行串口中断程序中的任务,并不影响串口程序正常工作。

注:龙芯1B嵌入式开发板是没有中断优先级,这一点于stm32的不同。

二、开发步骤

1.龙芯1B串口驱动函数(内置)

源代码:ls1x‐drv/uart/ns16550.c

头文件:ls1x‐drv/include/ns16550.h

#define BSP_USE_UART4                // Console_Port 控制台串口

#define BSP_USE_UART5                // Console_Port 控制台串口

需要使用哪一个串口就打开哪个串口(bsp.h)

以下是内部函数对串口的初始化设置(参数可自行修改):

#ifdef BSP_USE_UART4                 
static NS16550_t ls1b_UART4 =  
{
    .BusClock  = 0,                  
    .BaudRate  = 115200,
    .CtrlPort  = LS1B_UART4_BASE,
    .DataPort  = LS1B_UART4_BASE,
    .bFlowCtrl = false,              
    .ModemCtrl = 0,
    .bIntrrupt = true,               
    .IntrNum   = LS1B_UART4_IRQ,
    .IntrCtrl  = LS1B_INTC0_BASE,
    .IntrMask  = INTC0_UART4_BIT,
    .dev_name  = "uart4",
};
// to do initialize
// 总线频率,初始化时填充
// 默认速率
// 串口寄存器基址
// by user needed
// 使用中断方式
// 系统中断号
// 中断寄存器
// 中断屏蔽位
// 设备名称

2.串口中断示例代码

代码如下:

/*
 * uart_utp.c
 *
 * created: 2022/8/10
 *  author: 
 */
#include "ns16550.h"
#include "ls1b_gpio.h"

char buff[256];
void UART4_test(void)//执行任务
{
    ls1x_uart_read(devUART4,buff,255,NULL);
    printk("%x==%x==%x\r\n",buff[0],buff[1],buff[2]);
}

void uart4_interrupt(int vector, void * param)
{
    UART4_test();
}
/*
    devUART1---rx=gpio_50
    devUART2---rx=gpio_54
    devUART3---rx=gpio_56
    devUART4---rx=gpio_58
    devUART5---rx=gpio_60
*/
void uart_utp_init(void)
{
    ls1x_uart_init(devUART4,NULL); //初始化串口
    ls1x_uart_open(devUART4,NULL); //打开串口
    ls1x_disable_gpio_interrupt(58);
    ls1x_install_gpio_isr(58,INT_TRIG_EDGE_UP,uart4_interrupt,NULL);//中断初始化
    ls1x_enable_gpio_interrupt(58);
}

3.代码示例图

【龙芯1B例程】:串口中断实验

总结

        主函数代码就不贴了,初始化串口之后,满足条件则串口中断直接运行!如下有整个工程的示例程序,需要自取!

             有需要联系工作号,vx:bulidupup

        【龙芯1B例程】:串口中断实验

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/73667.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!