OpenEdv-开源电子网

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

串口发送问题

[复制链接]

16

主题

26

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2017-4-17
在线时间
22 小时
发表于 2017-4-20 21:51:11 | 显示全部楼层 |阅读模式
5金钱
主函数里面发送不出去 ,因为什么??、  哪位大神解释下
void uart2_init(u32 bound)
{
  //GPIO端口设置
  GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
         
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);        //使能USART2,GPIOA时钟
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE );

        //USART1_TX   GPIOA.2
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //PA.2
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;        //复用推挽输出
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.2

  //USART1_RX          GPIOA.3初始化
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//PA.3
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.3  

  //Usart2 NVIC 配置
  NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;                //子优先级3
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQ通道使能
        NVIC_Init(&NVIC_InitStructure);        //根据指定的参数初始化VIC寄存器

   //USART 初始化设置

        USART_InitStructure.USART_BaudRate = bound;//串口波特率
        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(USART2, &USART_InitStructure); //初始化串口2
  USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//开启串口接受中断
//        USART_ITConfig(USART2 ,USART_IT_TXE,ENABLE);
  USART_Cmd(USART2, ENABLE);                    //使能串口2

}
int main()
{
        delay_init();                     //延时函数初始化       
        led_init();
        uart2_init(9600);         //串口初始化为9600
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
        LED0 =0;
        while(1)
        {
//                printf("3");
                USART2->DR=2+48;
                while(USART2 ->SR & 0x40==0);
                LED0 =!LED0 ;
                delay_ms(300);
}

最佳答案

查看完整内容[请看2#楼]

你的两个uart都在一个函数里面,没有看到你调用 USART_Init(USART1, &USART_InitStructure); // 写入初始化信息 USART_Cmd(USART1, ENABLE); /* 使能 USART1 */ 你主函数的printf重定向到串口了吗?参考我的: /* * 函数名: fputc * 描述 : 重定向 c 库函数 printf 到 USART1 */ int fputc(int ch, FILE *f) { USART_SendData(USART1, (unsigned char) ch); // 将1字节数据发往串口寄存器,print ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2017-4-19
在线时间
2 小时
发表于 2017-4-20 21:51:12 | 显示全部楼层
你的两个uart都在一个函数里面,没有看到你调用
USART_Init(USART1, &USART_InitStructure); // 写入初始化信息
USART_Cmd(USART1, ENABLE);             /* 使能 USART1  */

你主函数的printf重定向到串口了吗?参考我的:

/*
* 函数名: fputc
* 描述 :        重定向 c 库函数 printf 到 USART1
*/
int fputc(int ch, FILE *f)
{
        USART_SendData(USART1, (unsigned char) ch); // 将1字节数据发往串口寄存器,printf测试usart2回显         
        while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET); // 轮询是否发送完成,标志位TC               
        return (ch);
}

回复

使用道具 举报

2

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
349
金钱
349
注册时间
2017-3-20
在线时间
86 小时
发表于 2017-4-21 01:02:55 | 显示全部楼层
如果GPIO口需要给片上外设使用的话是需要在时钟设置中开启  功能复用IO时钟  的
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-4-21 01:12:03 | 显示全部楼层
串口助手以hex格式显示看看
回复

使用道具 举报

8

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2016-12-30
在线时间
37 小时
发表于 2017-4-21 14:59:19 | 显示全部楼层
楼上正解。。。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-21 23:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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