硬汉嵌入式论坛

 找回密码
 立即注册
查看: 935|回复: 6
收起左侧

[有问必答] STM32F103RC 器件,使用 UART4 不成功

[复制链接]

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2024-7-19 09:28:14 | 显示全部楼层 |阅读模式
UART4  使用 PC10 as UART4_Tx  ,  PC11 as UART4_Rx ;   8N1 , 4800bps 发送数据,线路上有数据传送, 但 数据不正确!

硬件环境:  正点原子 的 MiniARM V3.6 。
测试软件:自己编写的----- 不成功。   又下载使用 正点原子的例程工程-----同样现象(收到的数据不同于发送数据)!!!

大侠有遇到过这个情况?毛病在哪?如何解决的?   谢谢!

下面是 相关的 code:(其他就是正常的常规代码,就不再占篇幅了)


//初始化IO 串口4 (from Uart2)
//pclk1CLK1时钟频率(Mhz)
//bound:波特率          
void UART4_Init(u32 bound)                                                // uart4    tx --- PC10 , rx --- PC11
{  
        NVIC_InitTypeDef NVIC_InitStructure;
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);                // GPIOC时钟
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4,ENABLE);                // UART4 CLK enable

        USART_DeInit(UART4);  //复位串口4
        //UART4_TX   初始化  PC10
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;                                 //PC.10---Tx4
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                //复用推挽输出
  GPIO_Init(GPIOC, &GPIO_InitStructure);                                                 //初始化PC10
   
  //UART4_RX          初始化 PC11
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;                                 //PC.11---Rx4
  //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;        //浮空输入
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                                        //上拉输入
  GPIO_Init(GPIOC, &GPIO_InitStructure);                                                          //初始化 PC11
       
        USART_InitStructure.USART_BaudRate = bound;                                                //一般设置为9600;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;        //字长为8位数据格式
        USART_InitStructure.USART_StopBits = USART_StopBits_1;                        //一个停止位
        USART_InitStructure.USART_Parity = USART_Parity_No;                                        //无奇偶校验位
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;        //无硬件数据流控制
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;        //收发模式
  
        USART_Init(UART4, &USART_InitStructure); //初始化 Uart4
       
#ifdef UART4_RX_EN                          //如果使能了接收
        NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1 ;        //抢占优先级1
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;                                //子优先级2
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                                //IRQ通道使能
        NVIC_Init(&NVIC_InitStructure);                //根据指定的参数初始化VIC寄存器
       
        //使能接收中断
  USART_ITConfig(UART4, USART_IT_RXNE, ENABLE);                        //开启 Uart4 中断   
#endif

        USART_Cmd(UART4, ENABLE);                //使能串口
}


回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-7-19 13:23:50 | 显示全部楼层
例程都没用,排查硬件问题吧,有没有共地
回复

使用道具 举报

97

主题

537

回帖

843

积分

金牌会员

积分
843
发表于 2024-7-19 15:09:40 | 显示全部楼层
用cubemx生成代码试试,cubemx生成的代码一般不会错。
这种配置的代码,我都是直接生成的。
共产主义一定胜利!
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2024-7-19 17:13:42 | 显示全部楼层
下午,使用 STM32 CubeMX 做了一个简单的 基于 STM32F103RCT6 器件 UART4  的 数据发送小---测试工程,仍然 ,UART4  发送 的数据不对!
线路数据---err!!!
难道:  STM32F103RCT6 器件的 UART4 、UART5 ---- 真的就是 传说中的 坑 吗?
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2024-7-19 17:17:30 | 显示全部楼层
会飞的猪_2020 发表于 2024-7-19 15:09
用cubemx生成代码试试,cubemx生成的代码一般不会错。
这种配置的代码,我都是直接生成的。

STM32CubeMx 生成测试 工程已做测试,仍不好使!& 现象一样!
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2024-7-22 11:17:12 | 显示全部楼层
问题已解决,谢谢各位!
总结:问题没解决时,一头雾水。毛病找到后,有那么的懊恼!一点小疏忽,一点没留意 都会导致 问题。感谢前面提示 接地 不好的那位朋友,谢谢!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116230
QQ
发表于 2024-7-23 10:07:37 | 显示全部楼层
usbbc 发表于 2024-7-22 11:17
问题已解决,谢谢各位!
总结:问题没解决时,一头雾水。毛病找到后,有那么的懊恼!一点小疏忽,一点没留 ...

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-11 06:00 , Processed in 0.384402 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表