你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何使用库函数 设置 STM8 S0003 使能串口接收中断

[复制链接]
su-409464 提问时间:2015-10-15 08:49 /
大家好!

           我用一颗STM8S003 的芯片连接一个串口的WIFI 模块, 我想使能STM8 串口接收中断。

           具体做法如下:

          1.  初始化  时钟和串口:

void main()
{
    My_CLK_Config(); // 初始化时钟
    disableInterrupts(); // 关闭中断
    UART1_DeInit();    //复位UART1
    UART1_Init((uint32_t)115200, UART1_WORDLENGTH_8D,UART1_STOPBITS_1, UART1_PARITY_NO,UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);    // 配置串口
    UART1_ITConfig(UART1_IT_RXNE,ENABLE);       //配置串口1的接收中断
    enableInterrupts();   // 开启中断
    while (1)
    { }
}

         2. 设置中断向量 表:
extern void _stext();     /* startup routine */
extern @far @interrupt void UART1_RX_IRQHandler(void);
extern @far @interrupt void TIM2_UPD_OVF_BRK_IRQHandler(void);
extern @far @interrupt void EXTI_PORTD_IRQHandler(void);
extern @far @interrupt void EXTI_PORTC_IRQHandler(void);
struct interrupt_vector const _vectab[] = {
    {0x82, (interrupt_handler_t)_stext}, /* reset */
    {0x82, NonHandledInterrupt}, /* trap  */
    {0x82, NonHandledInterrupt}, /* irq0  */
    {0x82, NonHandledInterrupt}, /* irq1  */
    {0x82, NonHandledInterrupt}, /* irq2  */
    {0x82, NonHandledInterrupt}, /* irq3  */
    {0x82, NonHandledInterrupt}, /* irq4  */
    {0x82, (interrupt_handler_t)EXTI_PORTC_IRQHandler}, /* irq5  */
    {0x82, (interrupt_handler_t)EXTI_PORTD_IRQHandler}, /* irq6  */
    {0x82, NonHandledInterrupt}, /* irq7  */
    {0x82, NonHandledInterrupt}, /* irq8  */
    {0x82, NonHandledInterrupt}, /* irq9  */
    {0x82, NonHandledInterrupt}, /* irq10 */
    {0x82, NonHandledInterrupt}, /* irq11 */
    {0x82, NonHandledInterrupt}, /* irq12 */
    {0x82, (interrupt_handler_t)TIM2_UPD_OVF_BRK_IRQHandler}, /* irq13 */
    {0x82, NonHandledInterrupt}, /* irq14 */
    {0x82, NonHandledInterrupt}, /* irq15 */
    {0x82, NonHandledInterrupt}, /* irq16 */
    {0x82, NonHandledInterrupt}, /* irq17 */
    {0x82, (interrupt_handler_t)UART1_RX_IRQHandler}, /* irq18 */

        完成以上操作后, 我在main 文件中 串口中断 入口 打了断点:   但是电脑串口发送数据到STM8,断点没有停止。
        请问以上设置有没有遗漏的?

@far @interrupt void UART1_RX_IRQHandler(void)
{   
    if(UART1->SR&UART1_FLAG_RXNE)
    {
        rxbuf[rx_num++]=UART1_ReceiveData8();
        UART1_SendData8(UART1_ReceiveData8());
     }
}







收藏 评论2 发布时间:2015-10-15 08:49

举报

2个回答
su-409464 回答时间:2015-10-15 17:53:43
星辰一方 发表于 2015-10-15 09:41
好久没玩过了,手边没有硬件,帮顶~

结帖子了
!!!!!!


硬件的串口FT232 坏了~~~~~ 真心的醉了~~~~

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

星辰一方 回答时间:2015-10-15 09:41:53
好久没玩过了,手边没有硬件,帮顶~
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版