找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1770|回复: 2
打印 上一主题 下一主题
收起左侧

STM32F103 C8T6最小系统串口助手不能收发数据

[复制链接]
跳转到指定楼层
楼主
ID:519660 发表于 2019-4-25 13:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/***************************************
* 文件名  :usart1.c
* 描述    :配置USART1         
* 实验平台:MINI STM32开发板 基于STM32F103C8T6
* 硬件连接:------------------------
*          | PA9  - USART1(Tx)      |
*          | PA10 - USART1(Rx)      |
*           ------------------------
* 库版本  :ST3.0.0  

**********************************************************************************/

#include "usart1.h"
#include <stdarg.h>


void USART1_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;

        /* 使能 USART1 时钟*/
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);
        USART_DeInit(USART1);

        /* USART1 使用IO端口配置 */   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);   

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;        //浮空输入
  GPIO_Init(GPIOA, &GPIO_InitStructure);   //初始化GPIOA
          
        /* USART1 工作模式配置 */
        USART_InitStructure.USART_BaudRate = 9600;        //波特率设置:115200
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;        //数据位数设置:8位
        USART_InitStructure.USART_StopBits = USART_StopBits_1;         //停止位设置: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(USART1, &USART_InitStructure);  //初始化USART1
        USART_Cmd(USART1, ENABLE);// USART1使能
}

/*发送一个字节数据*/
void UART1SendByte(unsigned char SendData)
{          
        USART_SendData(USART1,SendData);
        while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);            
}  

/*接收一个字节数据*/
unsigned char UART1GetByte(unsigned char* GetData)
{             
        if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)
        {  
                                        return 0;//没有收到数据
                    }
        *GetData = USART_ReceiveData(USART1);
        return 1;//收到数据
}
/*接收一个数据,马上返回接收到的这个数据*/
void UART1Test(void)
{
       unsigned char i = 0;

       while(1)
       {   
                 while(UART1GetByte(&i))
        {
         USART_SendData(USART1,i);
        }      
       }     
}



上面的程序用串口助手为什么发送接收不了数据呢?



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:511461 发表于 2019-6-14 17:11 | 只看该作者
你好歹配个附件吧
回复

使用道具 举报

板凳
ID:547625 发表于 2019-6-15 11:15 | 只看该作者
附上一个
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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