K60杂记

day1:
一、
中断类型码:即中断号,对于不同的中断服务程序用不同的名称记号,以调用该中断服务函数
中断向量:存放中断服务程序的入口地址,一个向量代表的入口地址为4个字节
中断向量表:由于存在多个中断请求,相应有多个中断服务程序,对应需要有多个中断向量来存放这些程序入口地址,为此系统在内存的特定区域安排一张中断像量表,专门存放所有的中断向量,称中断向量表
中断向量 = [中断号 * 4]方括号的含义是内存单元的内容,也就是说,只存储在内存地址0中,绝对开始位置

中断号类似中断名字,中断向量类似户口簿,存放中断号的家庭地址

上电复位是从中断向量表开始执行程序的

set_vector_handler(PORTD_VECTORn ,PORTD_IRQHandler);    //将PORTD_IRQHandler写入中断像量表,
发生中断的时候来中断像量表找地址,然后才执行中断服务函数,还可以在misc里面通过取消定义,重新定义的方式写入中断像量表
enable_irq (PORTD_IRQn);  //通过中断向量号,使能相应的中断,在armNVIC架构里面定义的函数

二、uart4 //RDRF接收数据寄存器满标志,当 RDRF 为 1 时读 S1,清除 RDRF
void MY_UART4_Handler()
{
char ch;
UARTn_e uratn = UART3;
if(UART_S1_REG(UARTN[uratn]) & UART_S1_RDRF_MASK) //接收数据寄存器满
{
//用户需要处理接收数据
uart_getchar (UART3, &ch); //无限等待接受1个字节
uart_putchar (UART3 , ch); //发送字符串
}
}

void main(void)
{
printf("\nUSART4测试\n");

uart_init(UART4,115200);
set_vector_handler(UART4_RX_TX_VECTORn, MY_UART4_Handler);//将中断服务函数地址传入中断像量表,入口参数中断像量表地址,服务函数地址
enable_irq(UART4_RX_TX_IRQn);//通过中断向量号使能相应中断
uart_rx_irq_en(UART4);

while(1)
{
  ;
 
}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值