[AT32F421]

AT32F425 LIN 有人调试过吗?

[复制链接]
354|5
手机看帖
扫描二维码
随时随地手机跟帖
lvben5d|  楼主 | 2022-8-1 10:13 | 显示全部楼层 |阅读模式
本帖最后由 lvben5d 于 2022-8-2 14:11 编辑

LIN总线具备回环模式,当你TXD的时候,你的RXD引脚会收到总线的信息。
发现AT32F425 , 首先接收串口中断进入的 字节接收中断,然后才是break BFF中断。 如果硬件上不能做区分,用户软件层面就必须做区分了。GD32E103的主机模式调试OK,移植到AT32F425,我发现break后,发送0x55 ,接收这边好像很容易收不到。不知道为什么,理论上来说,回环会进接收中断。  解决 :   原来是 AT32F425 接收 BFF中断后 马上发送0x55 会导致发送不出0x55, 导致接收不到,解决办法 如下
       delay_us(2);   //发送0x55之前 软延迟2us  再发。 我波特率19200    如果没有延迟,绝对收不到0x55回环~
       usart_data_transmit(USART1, 0x55);



使用特权

评论回复
mark一江水| | 2022-8-1 10:54 | 显示全部楼层
本帖最后由 mark一江水 于 2022-8-1 13:21 编辑

确实rxne接收标志会先于bff置位,并先来中断,rm也是这样描述的,没问题哦。同一个中断向量里,但是两个不同的标志位,也好区分。

参考RM描述

参考RM描述

使用特权

评论回复
lvben5d|  楼主 | 2022-8-1 13:54 | 显示全部楼层
本帖最后由 lvben5d 于 2022-8-2 14:11 编辑

AF32F425 LIN主机模式 没有调通。 break后,我发送0x55, 很多时候 没有回环收到,导致超时,而GD32E103 我全部调通了。
目前不知道哪里问题。
        gpio_init_type gpio_init_struct;
        /* configure the uart1 Rx pin */
        gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
        gpio_init_struct.gpio_out_type       = GPIO_OUTPUT_PUSH_PULL;
        gpio_init_struct.gpio_mode           = GPIO_MODE_MUX;
        gpio_init_struct.gpio_pins           = GPIO_PINS_7;
        gpio_init_struct.gpio_pull           = GPIO_PULL_UP;
        gpio_init(GPIOB, &gpio_init_struct);
        
        gpio_init_struct.gpio_pins           = GPIO_PINS_6;
        gpio_init_struct.gpio_pull           = GPIO_PULL_NONE;
        gpio_init(GPIOB, &gpio_init_struct);
        gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE6, GPIO_MUX_0);         
        gpio_pin_mux_config(GPIOB, GPIO_PINS_SOURCE7, GPIO_MUX_0);
        
        /* configure usart2 param */
        usart_init(USART1, SysInfo.Usbd2lin_baudrate[0], USART_DATA_8BITS, USART_STOP_1_BIT);
        usart_transmitter_enable(USART1, TRUE);
        usart_receiver_enable(USART1, TRUE);
        usart_interrupt_enable(USART1, USART_RDBF_INT, TRUE);
        usart_interrupt_enable(USART1, USART_BF_INT,   TRUE);
        usart_break_bit_num_set(USART1, USART_BREAK_11BITS);        
        usart_enable(USART1, TRUE);
        usart_lin_mode_enable(USART1, TRUE);
问题解决,楼1 我描述了!

使用特权

评论回复
skyred| | 2022-8-2 20:35 | 显示全部楼层
mark一江水 发表于 2022-8-1 10:54
确实rxne接收标志会先于bff置位,并先来中断,rm也是这样描述的,没问题哦。同一个中断向量里,但是两个不 ...

这个技术手册,能提供一下连接么

使用特权

评论回复
daichaodai| | 2022-8-4 19:42 | 显示全部楼层
没有调试过,帮顶一下。

使用特权

评论回复
chenqianqian| | 2022-8-5 07:52 | 显示全部楼层
没用过LIN,LIN的优势在哪里了?

使用特权

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

本版积分规则