你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 1818|回复: 1

[STM32L496] 【NUCLEO-L496ZG评测5】USART和LPUART通讯

[复制链接]

14

主题

521

回帖

19

蝴蝶豆

论坛元老

最后登录
2020-12-8
发表于 2017-5-25 18:10:26 | 显示全部楼层 |阅读模式
串口通信,算是比较基本的通信方式了,也是比较常用的观察数据的方式。在测试USARTLPUART时,同一时钟,波特率9600时,USART能用,LPUART不能通信,115200时可以,后来翻看参考手册时发现,如图1所示:

连接图如图2所示:

所以这是实践中要注意的。还是老习惯,先初始化引脚:
  1.    GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
  2.     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  3.     GPIO_InitStruct.Pull = GPIO_PULLUP;
  4.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  5.     GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
  6.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
复制代码

初始化UART
  1.   huart2.Instance = USART2;
  2.   huart2.Init.BaudRate = 9600;
  3.   huart2.Init.WordLength = UART_WORDLENGTH_8B;
  4.   huart2.Init.StopBits = UART_STOPBITS_1;
  5.   huart2.Init.Parity = UART_PARITY_NONE;
  6.   huart2.Init.Mode = UART_MODE_TX_RX;
  7.   huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  8.   huart2.Init.OverSampling = UART_OVERSAMPLING_16;
  9.   huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  10.   huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  11.   if (HAL_UART_Init(&huart2) != HAL_OK)
  12.   {
  13.     Error_Handler();
  14.   }
  15.           if(HAL_UART_Receive_IT(&huart2, (uint8_t *)Rxbuf, 2) != HAL_OK)
  16.   {
  17.     Error_Handler();
  18.   }
复制代码

使能接收中断:
  1.     /* Peripheral interrupt init */
  2.     HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
  3.     HAL_NVIC_EnableIRQ(USART2_IRQn);
复制代码

发送部分:
HAL_UART_Transmit(&huart2,Txbuf,2,10);

HAL_Delay(2000);

使用串口猎人,来观察发的数据和接收的数据,如图3所示:


图1

图1

图2

图2

图3

图3
<
回复

使用道具 举报

11

主题

1139

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-7-10
发表于 2017-5-25 18:16:47 | 显示全部楼层
支持一下
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版