OpenEdv-开源电子网

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

stm32串口通信问题

[复制链接]

41

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
949
金钱
949
注册时间
2015-10-25
在线时间
131 小时
发表于 2016-2-21 21:09:45 | 显示全部楼层 |阅读模式
前面对于IO口由于外面资料很多,只是写了一些自己的感想,仅此而已,没有别的意思。

       今天想了很久才写自己才开始写,写的不好,大家可以指出,我也好改进。

       对于单片机最基础了出了IO口,就是通信方式了,说的通信方式不得不想到串口通信。

       我自己是学习探索者stm32f4的,这里我就分享自己的感想和自己的问题。


       对于外设的使用首先必然是时钟的使能。

       RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//USART时钟使能
       RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//IO时钟使能

       然后就是把IO复用

       GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);
       GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);


      接下来就是初始化,在这里我遇到了一个问题
           GPIO_InitTypeDef   GPIO_InitStructure;

           GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;//复用模式
           GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
           GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
           GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
           GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;
           GPIO_Init(GPIOA,&GPIO_InitStructure);
    上面是探索者的程序
      可是这样写就不行
          GPIO_InitTypeDef   *GPIO_InitStructure;

           GPIO_InitStructure->GPIO_Mode=GPIO_Mode_AF;//复用模式
           GPIO_InitStructure->GPIO_OType=GPIO_OType_PP;
           GPIO_InitStructure->GPIO_Pin=GPIO_Pin_9;
           GPIO_InitStructure->GPIO_PuPd=GPIO_PuPd_UP;
           GPIO_InitStructure->GPIO_Speed=GPIO_Speed_100MHz;
           GPIO_Init(GPIOA,GPIO_InitStructure);
   个人c语言能力有限,如果有人知道,请指出


       然后就是串口相关的初始化
            设置波特率,奇偶校验,停止位等
        USART_InitStructure.USART_BaudRate=115200;
            USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
            USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
            USART_InitStructure.USART_Parity=USART_Parity_No;
            USART_InitStructure.USART_StopBits=USART_StopBits_1;
            USART_InitStructure.USART_WordLength=USART_WordLength_8b;
       
                  USART_Init(USART1,&USART_InitStructure);


        使用它必然要使能串口
          USART_Cmd(USART1,ENABLE);//使能串口

         这样串口的基本配置就完成了

        单片机嵌入式技术交流 511426545



             

串口通信.pdf

43.19 KB, 下载次数: 404

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-2-21 22:05:51 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 02:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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