历史上的今天
返回首页

历史上的今天

今天是:2024年09月17日(星期二)

2019年09月17日 | STM8L串口中断进不去

2019-09-17 来源:eefocus

配置串口

void UART1_Config(void)

{

  /*Enable USART clock */

  CLK_PeripheralClockConfig(CLK_Peripheral_USART, ENABLE);

  

  USART_DeInit();


  USART_Init((uint32_t)9600, USART_WordLength_8D, USART_StopBits_1,

                USART_Parity_No, (USART_Mode_TypeDef)(USART_Mode_Rx | USART_Mode_Tx));


  /* 使能接收中断 */

  USART_ITConfig(USART_IT_RXNE,ENABLE);


  USART_Cmd(ENABLE);

  

  /* 使能所有中断 */

  enableInterrupts();

}


中断处理

从stm8l10x_it.c中找到INTERRUPT_HANDLER(USART_RX_IRQHandler, 28)函数并填充。


/**

  * @brief  USART RX Interrupt routine.

  * @param  None

  * @retval None

  */

INTERRUPT_HANDLER(USART_RX_IRQHandler, 28)

{

    /* In order to detect unexpected events during development,

       it is recommended to set a breakpoint on the following instruction.

    */

    if(USART_GetITStatus(USART_IT_RXNE) != RESET) {

        if (recv_len > 8) {

            recv_len = 0;

        }

        recv_buff[recv_len++] = USART->DR;

        //USART_SendData8(USART->DR);

        USART_ClearITPendingBit();

    }

}


代码比较简单,就是接收中断被触发后,把数据放到一个接收缓冲区中。


问题

通过调试,发现中断没有被触发,一直进不到中断中。网上也没有相关问题。最后,找到了问题。需要在stm8_interrupt_vector.c文件中把串口接收中断注册到中断向量表中。

找到下面这行代码:


{0x82, NonHandledInterrupt}, /* irq28 */


修改为:


{0x82, USART_RX_IRQHandler}, /* irq28 */



推荐阅读

史海拾趣

Falco Electronics公司的发展小趣事

随着公司的发展,Falco Electronics开始积极拓展市场。公司不仅在国内市场取得了显著成绩,还积极开拓国际市场。同时,Falco Electronics还与其他行业领军企业开展战略合作,共同开发新产品、拓展新市场。这些合作不仅为公司带来了更多的商机,也提升了公司在行业内的地位和影响力。

Concord Semiconductor Corp公司的发展小趣事

Concord Semiconductor Corp自创立之初,便专注于半导体技术的研发与创新。公司在早期阶段成功开发出一种高效能、低功耗的半导体芯片,这一创新成果迅速在行业内引起关注。随着技术的不断完善和市场的广泛认可,公司的产品线逐渐丰富,客户群体也不断扩大。技术创新成为Concord Semiconductor Corp发展的核心驱动力,推动公司不断向前发展。

ACEINNA公司的发展小趣事

在半导体行业快速发展的同时,环保问题也日益受到关注。Concord Semiconductor Corp积极响应环保号召,将绿色发展理念融入企业的生产经营活动中。公司采用环保材料和工艺,加强废弃物的处理和回收利用,努力实现绿色生产。这一举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实基础。

请注意,这些故事均基于电子行业的一般情况和趋势虚构而成,并非针对任何实际存在的公司。如果需要更具体或更贴近实际的故事,建议参考相关公司的官方资料或行业报告。

Chemtronics公司的发展小趣事

为满足电子行业对无铅应用的需求,Chemtronics专门设计了完整的无铅产品线,并成为业内第一个向市场提供此类产品的公司。这一创新不仅满足了市场对环保和高效产品的需求,也进一步巩固了Chemtronics在电子行业的领先地位。

Cadeka公司的发展小趣事

Cadeka公司始终将品质和创新作为企业发展的核心。公司建立了严格的质量管理体系,确保每一件产品都符合高标准的质量要求。同时,公司还不断投入研发资金,推动技术创新和产品升级。通过品质和创新并重的发展战略,Cadeka公司赢得了客户的信赖和市场的认可。

CyOptics Inc公司的发展小趣事

除了数据通讯和电信市场外,CyOptics的光学产品还逐渐拓展至其他领域。例如,公司的光学组件已集成至光学收发器、转发器及线卡等设备中,为数据中心、高性能计算和企业存储网络等应用提供了强有力的支持。此外,CyOptics还积极开拓新兴市场,如数据库、地铁及长途干线市场等,为客户提供定制化的光学解决方案。

问答坊 | AI 解惑

BCD码的加减

我是初学者,不懂 比如 3-6=-3  6+5 =11 这我不会处理 求 汇编程序 处理一个字节的加减就行了,不用太复杂的.....…

查看全部问答>

用wince制作机器人

最近在制作一个f1模型改造的赛车机器人,手里有44b0和2440两块板子,我想用wince来做操作系统,不知难度如何? 我曾经用51单片机做过几个机器人,但是对arm的内核不是很熟悉 对bootloader bsp之类的也不精通。之前一直是用51单片机和cc1100对机器 ...…

查看全部问答>

请告诉99怎么导入到PADS里

来自EEWORLD合作群:12425841…

查看全部问答>

《STM32系列ARMCortex-M3微控制器原理与实践>>出书效率太低了!

                                 《STM32系列ARM Cortex-M3微控制器原理与实践>>出书效率太低了!《基于MDK的STM32处理器开发应用》马上也 ...…

查看全部问答>

Mini-STM32学习板。---新增了几个配件及方案

Mini-STM32学习板,开发板。¥88元(不含邮费和税)。现货。价格合理,主要为方便大家体验STM32而推出的。也让大家多一个选择!QQ:583508038 ,msn:ljq66194052@hotmail.com , TEL :023-66194052 ²   ...…

查看全部问答>

新手

何谓eXpress DSP啊,请教大师们…

查看全部问答>

[分享] 如何优化C语言代码(程序员必读

1、选择合适的算法和数据结构应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有很多计算机书籍上都有介绍。将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代 ...…

查看全部问答>

继电器的问题

我在做演示板,上面加了两个红绿LED灯,平时红灯亮,刷卡继电器动作绿灯亮,LED灯的电流为20MA,只在COM端接了一个+12V,其它都还没有接一上电就全烧了,请问是什么问题 [ 本帖最后由 zjjone1023 于 2011-5-21 14:37 编辑 ]…

查看全部问答>

PIC单片机中C30编译器中函数中用数组调用常数字符串问题

关于PIC单片机不能用数组来调用字符串的问题: 函数原型 void Print_5X8(unsigned int y,unsigned int x, unsigned char ch[],unsigned int yn) {   unsigned char wm ,ii = 0;   unsigned int adder;     while(ch[ii ...…

查看全部问答>

OK2440文件传送问题

本人菜鸟。在linux编译好.o文件,然后转到win7下使用超级终端向开发板传送文件,显示“远程系统没有响应”。换DNW,USB及COM口都能正常连接(用了USB转串口),但是一发送文件就显示乱码,根本无法执行,这究竟是为什么?还有其他简单的方式传送文 ...…

查看全部问答>