打印
[其他ST产品]

STM8S105K4 LIN问题

[复制链接]
327|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2022-11-1 09:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近用STM8S105K4做了一个小玩意,通过LIN总线和其他设备通讯。
按例程写了程序,在线调试也走通了,但是烧录入芯片后,就没有输出,感觉是整个芯片死机了。通过一段段减小代码的方式,现在基本锁定问题在UART2->CR2 |= 0x01;,只要这行代码运行,程序就死机,但是在线调试有没有问题。
不知道有人解释一下这是为什么吗?

unsigned char *LIN_Send(unsigned char ch)
{
    unsigned char TEMP[9];
    unsigned char i=0;
    unsigned int  Num = 0;
   
    UART2->CR2 |= 0x01;                    // 将UART_CR2的SBK位置1来请求发送断开符+分界符
        
    UART_SendChar(0x55);                 // 对UART_DR写入0x55来请求发送同步域。
     
    UART_SendChar(ch);                  // 对UART_DR写入被保护识别符值来请求发送识别符域
   
    delay_ms(20);
    UART2->SR &= 0xDF;
   
    for (i = 0; i < 9; i++)
    {
        do
        {
            delay_ms(2);
            Num++;
        }
        while(((UART2->SR & 0x20) == 0x00) && (Num<40));
        
        TEMP[i] = UART_ReceChar();
        Num=0;
    }

    return TEMP;
}

使用特权

评论回复
沙发
两只袜子| | 2022-11-1 09:22 | 只看该作者
检查一下是否开启了溢出中断

使用特权

评论回复
板凳
cr315| | 2022-11-1 10:56 | 只看该作者
如果启用了UART中断收发,注意对中断请求标志及时清零

使用特权

评论回复
地板
Undshing| | 2022-11-2 19:51 | 只看该作者
有没有溢出中断啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1510

主题

4547

帖子

6

粉丝