1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4.  
  5. u8 rdata[];
  6.  
  7. UART_HandleTypeDef usart1_handler; //UART¾ä±ú
  8.  
  9. void uart1_init()
  10. {
  11. usart1_handler.Instance=USART1; //USART1
  12. usart1_handler.Init.BaudRate=; //²¨ÌØÂÊ
  13. usart1_handler.Init.WordLength=UART_WORDLENGTH_8B; //×Ö³¤Îª8λÊý¾Ý¸ñʽ
  14. usart1_handler.Init.StopBits=UART_STOPBITS_1; //Ò»¸öֹͣλ
  15. usart1_handler.Init.Parity=UART_PARITY_NONE; //ÎÞÆæżУÑéλ
  16. usart1_handler.Init.HwFlowCtl=UART_HWCONTROL_NONE; //ÎÞÓ²¼þÁ÷¿Ø
  17. usart1_handler.Init.Mode=UART_MODE_TX_RX; //ÊÕ·¢Ä£Ê½
  18. HAL_UART_Init(&usart1_handler); //HAL_UART_Init()»áʹÄÜUART1
  19.  
  20. }
  21.  
  22. void HAL_UART_MspInit(UART_HandleTypeDef *huart)
  23. {
  24.  
  25. GPIO_InitTypeDef GPIO_Initure;
  26.  
  27. if(huart->Instance==USART1)//Èç¹ûÊÇ´®¿Ú1£¬½øÐд®¿Ú1 MSP³õʼ»¯
  28. {
  29. __HAL_RCC_GPIOA_CLK_ENABLE(); //ʹÄÜGPIOAʱÖÓ
  30. __HAL_RCC_USART1_CLK_ENABLE(); //ʹÄÜUSART1ʱÖÓ
  31.  
  32. GPIO_Initure.Pin=GPIO_PIN_9; //PA9
  33. GPIO_Initure.Mode=GPIO_MODE_AF_PP; //¸´ÓÃÍÆÍìÊä³ö
  34. GPIO_Initure.Pull=GPIO_PULLUP; //ÉÏÀ­
  35. GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH; //¸ßËÙ
  36. GPIO_Initure.Alternate=GPIO_AF7_USART1; //¸´ÓÃΪUSART1
  37. HAL_GPIO_Init(GPIOA,&GPIO_Initure); //³õʼ»¯PA9
  38.  
  39. GPIO_Initure.Pin=GPIO_PIN_10; //PA10
  40. HAL_GPIO_Init(GPIOA,&GPIO_Initure); //³õʼ»¯PA10
  41.  
  42. HAL_NVIC_EnableIRQ(USART1_IRQn); //ʹÄÜUSART1ÖжÏͨµÀ
  43. HAL_NVIC_SetPriority(USART1_IRQn,,); //ÇÀÕ¼ÓÅÏȼ¶3£¬×ÓÓÅÏȼ¶3
  44. }
  45.  
  46. }
  47.  
  48. void USART1_IRQHandler(void)
  49. {
  50. HAL_UART_IRQHandler(&usart1_handler);
  51. while (HAL_UART_GetState(&usart1_handler) != HAL_UART_STATE_READY);//ÅжÏUARTÊÇ·ñ³õʼ»¯
  52. while(HAL_UART_Receive_IT(&usart1_handler, (u8 *)rdata, ) != HAL_OK); //ÖØдò¿ªÖжÏ
  53.  
  54. }
  55.  
  56. void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
  57. {
  58. u8 rec;
  59. if(huart->Instance==USART1)//Èç¹ûÊÇ´®¿Ú1
  60. {
  61. rec=*(--(huart->pRxBuffPtr));//°ÑÖ¸Õëµ¹ÍË»ØÔ­À´µÄ×Ö·ûλÖÃ
  62. HAL_UART_Transmit(&usart1_handler,&rec,,);
  63. }
  64.  
  65. }
  66.  
  67. int main(void)
  68. {
  69.  
  70. HAL_Init(); //³õʼ»¯HAL¿â
  71. Stm32_Clock_Init(,,,); //ÉèÖÃʱÖÓ,180Mhz
  72. delay_init();
  73.  
  74. uart1_init();//³õʼ»¯´®¿Ú²ÎÊý
  75.  
  76. HAL_UART_Receive_IT(&usart1_handler, (u8 *)rdata, );//¸Ãº¯Êý»á¿ªÆô½ÓÊÕÖжϣº±ê־λUART_IT_RXNE£¬²¢ÇÒÉèÖýÓÊÕ»º³åÒÔ¼°½ÓÊÕ»º³å½ÓÊÕ×î´óÊý¾ÝÁ¿
  77.  
  78. while()
  79. {
  80.  
  81. }
  82.  
  83. }

UART串口通信的更多相关文章

  1. 【C51】UART串口通信

    我们常需要单片机和其他模块进行通信,数据传输,常用的方式就是串口通信技术. 常用来 单片机<-->电脑,  单片机<-->单片机之间通信. 串行通信 versus 并行通信 并 ...

  2. Win10 IoT C#开发 4 - UART 串口通信

    Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,既可以开发设备UI与用户交互式操作,又可以控制GPIO等接口,使得原来嵌入式繁琐的开发变得简单.通过Remote Debug ...

  3. 【ARM】2410裸机系列-uart串口通信

    开发环境 (1)硬件平台:FS2410 (2)主机:Ubuntu 12.04 FS2410串口的原理图 串口UART寄存器配置   配置TXD0与RXD0(GPH2.GPH3) 设置波特率(UBRDI ...

  4. 【iCore3 双核心板_FPGA】实验二十五:NIOS II之UART串口通信实验

    实验指导书及代码包下载: http://pan.baidu.com/s/1eRMZq18 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  5. 【iCore4 双核心板_FPGA】实验二十:NIOS II之UART串口通信实验

    实验指导书及源代码下载地址: 链接:https://pan.baidu.com/s/1g_tWYYJxh4EgiGvlfkVu1Q 提取码:dwwa 复制这段内容后打开百度网盘手机App,操作更方便哦 ...

  6. FPGA nios通过驱动LCD12864实现菜单界面和uart串口通信

    因为csdn无法插入视频,无法展示我这个实现的效果,这里我截了一些图,应该基本上也能明白了: 基本功能就是如图片所示,里面采用了菜单结构(这里编程需要一定得c语言编程技巧与数据结构知识),gpa是什么 ...

  7. Stm32串口通信(USART)

    Stm32串口通信(UART) 串口通信的分类 串口通信三种传递方式 串口通信的通信方式 串行通信的方式: 异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束.其每帧的格式如下: 在一帧格 ...

  8. STM32串口通信UART使用

    STM32串口通信UART使用 uart使用的过程为: 1. 使能GPIO口和UART对应的总线时钟 2. 配置GPIO口的输出模式 3. 配置uart口相关的基本信息 4. 使能uart口的相关的中 ...

  9. (三) UART 串口通讯

    UART  : university asynchronous receiver and transmitter UART  // 通用异步接收器和发送器 为什么要有串口:因为许多嵌入式设备没有显示屏 ...

随机推荐

  1. 【JavaFx教程】第四部分:CSS 样式

    第4部分主题 CSS样式表 添加应用程序图标 CSS样式表 在JavaFX中,你能使用层叠样式表修饰你的用户接口.这非常好!自定义Java应用界面从来不是件简单的事情. 在本教程中,我们将创建一个*D ...

  2. 深入理解CSS3 gradient斜向线性渐变——张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=3639 一.问题没有想 ...

  3. HTML DOM 知识点整理(一)—— Document对象

    一.DOM对象 DOM对象整体包括: HTML DOM Document对象 HTML DOM 元素对象 HTML DOM 属性对象 HTML DOM 事件对象 HTML DOM Console 对象 ...

  4. js点击获取标签元素

     14.数组去重 方法一:利用冒泡 function elementName(evt){ evt = evt|| window.event; // IE: window.event // IE用src ...

  5. PHP如何批量更新MYSQL中的数据

    最近项目需要用到批量更新数据库里的数据,在网上找了一下这方面的例子,觉得这个还不错,分享给大家. 在这个业务里里面涉及到了更新两张数据表,那么大家是不是会想到非常简单,马上上代码 $sql ,type ...

  6. Adobe Flash Builder 4.6 打开时提示Failed to create the Java Virtual Machine

    最近使用actionscript来编程,用到Adobe Flash Builder 工具,之前一直用着都没事的,今天打开突然就报了这个错误,然后就打不开了 好了,不多说,直接来吧. 首先在你的Adob ...

  7. VirtualBox安装Mac OS 10.11——虚拟机安装黑苹果

    由于需要安装mac环境跑IOS应用,所以在虚拟机装个黑苹果. 一.下载虚拟机安装包,VirtualBox是官网下的最新版:  5.0.6 for Windows hosts x86/amd64  官网 ...

  8. TestLink笔记(一):环境配置+安装

    注:转载请加上原文链接,谢谢! 本文的安装环境是Windows操作系统. (一)     前期准备 1.XAMPP下载(下载5.6的版本) https://www.apachefriends.org/ ...

  9. windows10局域网实现文件共享

    1.共享文件夹设置: 磁盘文件夹,鼠标右键 选择高级共享 如图,自定义选项: 控制面板中添加新用户,一定给设置一个密码(远程登录时候用) 用户: * windows键+R * \\IP地址\目录 * ...

  10. Mongodb Windows 集群

    我在一台Windows机器下搭建了一个 Replica Sets + Sharding 测试集群环境,以此作为我后续对于Mongodb更进一步学习的实验平台. 只有一台windows机器,配置方案:1 ...