zoukankan      html  css  js  c++  java
  • stm32正点原子学习笔记(26)串口寄存器库函数配置方法+手把手教你写串口通信实例

    main.c

     1 #include "stm32f10x.h"
     2 #include"uart.h"
     3 
     4 
     5 int main(void)
     6 {
     7     uart_init(115200);
     8     while(1)
     9     {
    10         
    11     }
    12 }

    uart.c

     1 #include"uart.h"
     2 
     3 void uart_init(u32 bound)
     4 {
     5     GPIO_InitTypeDef GPIO_InitStructure;
     6     NVIC_InitTypeDef NVIC_InitStructure;
     7     USART_InitTypeDef USART_InitStructure;
     8     
     9     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);
    10     
    11     GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
    12     GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
    13     GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    14     
    15     GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
    16     GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
    17     GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    18     GPIO_Init(GPIOA,&GPIO_InitStructure);
    19     
    20     USART_InitStructure.USART_BaudRate=bound;//比特率
    21     USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//硬件流
    22     USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;//发送接收使能
    23     USART_InitStructure.USART_Parity=USART_Parity_No;//奇偶校验
    24     USART_InitStructure.USART_StopBits=USART_StopBits_1;
    25     USART_InitStructure.USART_WordLength=USART_WordLength_8b;//数据位长度(字长)
    26     USART_Init(USART1,&USART_InitStructure);
    27 
    28     //使用中断---------------------------
    29     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//优先级分组在misc.c里,2位抢占,2位响应
    30     
    31     NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;
    32     NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
    33     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
    34     NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
    35     NVIC_Init(&NVIC_InitStructure);
    36     
    37     USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//接收缓冲区非空,即接收中断
    38     //----------------------------------
    39     
    40     USART_Cmd(USART1,ENABLE);
    41 }
    42 
    43 void USART1_IRQHandler(void)//中断服务函数,启动文件中找
    44 {
    45     u8 rec;
    46     if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)//接收中断,状态检测stm32f10x_usart.h中找
    47     {
    48         rec=USART_ReceiveData(USART1);
    49 //        if(rec==1)
    50 //        {
    51             USART_SendData(USART1,rec);//(DATA) <= 0x1FF
    52 //        }
    53     }
    54 }

    uart.h

    1 #ifndef __uart_H
    2 #define __uart_H                
    3 
    4 #include"sys.h"
    5 
    6 void uart_init(u32 bound);
    7 
    8 #endif
  • 相关阅读:
    firefox 网页编辑器不能访问剪贴板图片的问题解决
    ubuntu 安装rails 遇到的问题及解决办法
    Mysql索引建立、查询、删除
    UIImage 各种处理(分类)
    iOS加载Gif图片
    json plist 互转
    克隆网站 mac
    UIlabel
    pod 更新 升级
    2016审核标准
  • 原文地址:https://www.cnblogs.com/IceHowe/p/10959753.html
Copyright © 2011-2022 走看看