社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 441|回复: 7

[原创] STM32 L4串口返回电脑发送的数据

[复制链接]

184

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-11-2 18:33:05 | 显示全部楼层 |阅读模式

[C] 纯文本查看 复制代码
#include "stm32l4xx_hal.h"
#include "periph.h"
UART_HandleTypeDef UartHandle;
uint8_t aRxBuffer;
int main()
{
    char ch[]="hello word";
    HAL_Init();
    SystemClock_Config();
	 Gpio_Inits();
  __HAL_RCC_USART2_CLK_ENABLE();
	
   
    UartHandle.Instance        = USART2;
  UartHandle.Init.BaudRate   = 9600;
  UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
  UartHandle.Init.StopBits   = UART_STOPBITS_1;
  UartHandle.Init.Parity     = UART_PARITY_NONE;
  UartHandle.Init.HwFlowCtl  = UART_HWCONTROL_NONE;
  UartHandle.Init.Mode       = UART_MODE_TX_RX; 
	
    HAL_UART_Init(&UartHandle);
	
	
	 HAL_NVIC_SetPriority(USART2_IRQn, 1, 0);
  HAL_NVIC_EnableIRQ(USART2_IRQn); //¿aÆô′®¿úÖD¶Ï2
	
	
	  HAL_UART_Receive_IT(&UartHandle,&aRxBuffer,1);
		
    HAL_UART_Transmit(&UartHandle, (uint8_t *)&ch, 10, 0xFFFF);
		
    while(1)
    {
         
         HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
        HAL_Delay(500);
 
    }
}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *husartx)
{
  HAL_UART_Transmit(&UartHandle,&aRxBuffer,1,0);  //·¢ËíArxBuffer
  HAL_UART_Receive_IT(&UartHandle,&aRxBuffer,1);   //ÖØD¿aÆô½óêÕÖD¶Ï 
}
void  USART2_IRQHandler(void)
{
  HAL_UART_IRQHandler(&UartHandle);
}


此内容由EEWORLD论坛网友xutong原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自stm32/stm8论坛


回复

使用道具 举报

184

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-11-2 18:33:27 | 显示全部楼层
[C] 纯文本查看 复制代码
#include "periph.h"
void Gpio_Inits(void)
{
    GPIO_InitTypeDef  GPIO_InitStruct;
    __HAL_RCC_GPIOA_CLK_ENABLE();
    __HAL_RCC_GPIOC_CLK_ENABLE();
    GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull  = GPIO_PULLUP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  GPIO_InitStruct.Pin = GPIO_PIN_5 ;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
     
    GPIO_InitStruct.Mode =GPIO_MODE_IT_RISING; //??????????
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Pin = GPIO_PIN_13;
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
     
    //??2??????
    GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pin=GPIO_PIN_2;
     GPIO_InitStruct.Speed=GPIO_SPEED_FAST;
    GPIO_InitStruct.Alternate=GPIO_AF7_USART2; 
    GPIO_InitStruct.Pull=GPIO_PULLUP;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
		
		GPIO_InitStruct.Alternate=GPIO_AF7_USART2; 
		  GPIO_InitStruct.Mode=GPIO_MODE_AF_OD;
    GPIO_InitStruct.Pin=GPIO_PIN_3;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
//??2??????
     
     /* Enable and set EXTI lines 10 to 15 Interrupt to the lowest priority */
  HAL_NVIC_SetPriority(EXTI15_10_IRQn, 2, 0);  //??????15——10???
  HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);           //??????
}
 
void SystemClock_Config(void)
{
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
 
  /* MSI is enabled after System reset, activate PLL with MSI as source */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI;
  RCC_OscInitStruct.MSIState = RCC_MSI_ON;
  RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_6;
  RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_MSI;
  RCC_OscInitStruct.PLL.PLLM = 1;
  RCC_OscInitStruct.PLL.PLLN = 40;
  RCC_OscInitStruct.PLL.PLLR = 2;
  RCC_OscInitStruct.PLL.PLLP = 7;
  RCC_OscInitStruct.PLL.PLLQ = 4;
  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    /* Initialization Error */
    while(1);
  }
   
  /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 
     clocks dividers */
  RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;  
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;  
  if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK)
  {
    /* Initialization Error */
    while(1);
  }
}


回复

使用道具 举报

184

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-11-2 18:33:46 | 显示全部楼层
[C] 纯文本查看 复制代码
#ifndef __PERIPH_H
#define __PERIPH_H
#include "stm32l4xx_hal.h"
void Gpio_Inits(void);
void SystemClock_Config(void);
#endif


回复

使用道具 举报

184

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-11-2 18:36:31 | 显示全部楼层
工程文件emmmmm

L4串口.zip

949.92 KB, 下载次数: 8



回复

使用道具 举报

3169

TA的帖子

112

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2017-11-3 09:55:03 | 显示全部楼层
感谢楼主一直分享STM32L452的学习过程。分享代码的同时,还可以多分享下工程实现过程和你的一些思考

点评

只是简单的使用一下 哈哈 最近工作太忙没更新  详情 回复 发表于 2018-1-14 08:18


回复

使用道具 举报

184

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-1-14 08:18:39 | 显示全部楼层
nmg 发表于 2017-11-3 09:55
感谢楼主一直分享STM32L452的学习过程。分享代码的同时,还可以多分享下工程实现过程和你的一些思考{:1_102 ...

只是简单的使用一下 哈哈 最近工作太忙没更新

点评

yet
赞, 哈哈,和我一样写代码不注释,老大经常敲打  详情 回复 发表于 2018-1-14 16:55


回复

使用道具 举报

171

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-1-14 16:55:00 | 显示全部楼层
xutong 发表于 2018-1-14 08:18
只是简单的使用一下 哈哈 最近工作太忙没更新

赞,
哈哈,和我一样写代码不注释,老大经常敲打

点评

HAHA要养成习惯  详情 回复 发表于 2018-1-14 18:43


回复

使用道具 举报

184

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-1-14 18:43:19 | 显示全部楼层
yet 发表于 2018-1-14 16:55
赞,
哈哈,和我一样写代码不注释,老大经常敲打

HAHA要养成习惯


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-2-26 07:39 , Processed in 0.222265 second(s), 21 queries , Redis On.

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