OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3535|回复: 1

STM32F429阿波罗开发板 RS232串口发送数据 哪里有问题呀

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2020-10-20
在线时间
2 小时
发表于 2020-10-20 21:11:49 | 显示全部楼层 |阅读模式
1金钱
各位大神,就这么点代码,然后仿照USB串口通信配置的RS232的通信,就简单的测试输出,可是串口调试助手一直都接收不到内容,是哪里配置错了吗???


#include "sys.h"
#include "delay.h"
#include "usart.h"


UART_HandleTypeDef  UART2_Handle;//Handle是个句柄,会有很多地方用到,所以设置为全局变量

void UART2_Init() //USART2串口初始化
{

UART2_Handle.Instance=USART2;                          //#define USART2  ((USART_TypeDef *) USART2_BASE)   Instance是基地址
UART2_Handle.Init.BaudRate=115200;               //波特率
UART2_Handle.Init.WordLength=UART_WORDLENGTH_8B; //传输8字节
UART2_Handle.Init.StopBits=USART_STOPBITS_1;     //停止位 为 1
UART2_Handle.Init.HwFlowCtl=UART_HWCONTROL_NONE; //硬件流控制关闭
UART2_Handle.Init.Mode=UART_MODE_TX_RX;          //发送接收都开启
UART2_Handle.Init.Parity=UART_PARITY_NONE;       //不使用奇偶校验位
HAL_UART_Init (&UART2_Handle);

}
       
void  HAL_UART_MspInit(UART_HandleTypeDef *huart)//MCU有关的初始化,外设的复用映射,串口初始化,中断优先级设置一般放在这里,HAL_UART_MspInit会被HAL_UART_Init调用,只要调用HAL_UART_Init,都会调用HAL_UART_MspInit这个函数,它是通用的
{
         GPIO_InitTypeDef GPIO_Initure;
       
       
       if(huart->Instance==USART1)//如果判断为串口2,如果是串口2,就进行串口2的初始化
        {
          __HAL_RCC_GPIOA_CLK_ENABLE();                        //使能GPIOA时钟
          __HAL_RCC_USART2_CLK_ENABLE();                     //使能USART2时钟
       
                //COM2: PA2是输出, PA3是输入
               
                 
          GPIO_Initure.Pin=GPIO_PIN_2;            //PA2,3的配置一样的时候,可以用或。但是串口一个输入,一个输出,我们先这样。
        GPIO_Initure.Mode=GPIO_MODE_AF_PP;      //复用推挽输出
       GPIO_Initure.Pull=GPIO_PULLUP;          //上拉
       GPIO_Initure.Speed=GPIO_SPEED_HIGH;     //高速
       GPIO_Initure.Alternate=GPIO_AF7_USART2;        // 复用为USART2
       HAL_GPIO_Init(GPIOA,&GPIO_Initure);     // 参数1:HAL_GPIO_Init中有assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));其中IS_GPIO_ALL_INSTANCE(右键定义)定义了输入什么参数是有效的。
                                                  //参数2:GPIO_InitTypeDef 中的参数的有效性是对他结构体中的变量进行操作,所以使用定义结构体指针变量,传入结构体变量地址的方式

    GPIO_Initure.Pin=GPIO_PIN_3;            //PA2,3的配置一样的时候,可以用或。但是串口一个输入,一个输出,我们先这样。
    GPIO_Initure.Mode=GPIO_MODE_INPUT;      //输入
    GPIO_Initure.Pull=GPIO_PULLUP;          //上拉
    GPIO_Initure.Speed=GPIO_SPEED_HIGH;     //高速
          GPIO_Initure.Alternate=GPIO_AF7_USART2;        // 复用为USART2
               
                HAL_GPIO_Init(GPIOA,&GPIO_Initure);        
               
        }
}



int main(void)
{


         u8 Tbuffer[]="test1";

          HAL_Init();                             //初始化HAL库   
         Stm32_Clock_Init(360,25,2,8);           //设置F429时钟,180Mhz
         delay_init(180);                        //初始化 delay延时函数
          
          UART2_Init();
          
          while(1)
                {
                  HAL_UART_Transmit(&UART2_Handle,Tbuffer,sizeof(Tbuffer),1000);//超时时间是做什么的
                        delay_ms(300);
                }                       
       
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2020-4-14
在线时间
36 小时
发表于 2020-10-23 11:17:00 | 显示全部楼层
本帖最后由 cdhui0574 于 2020-10-23 11:22 编辑

   if(huart->Instance==USART1)//如果判断为串口2,如果是串口2,就进行串口2的初始化这里的USART1   改成USART2
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-29 22:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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