STM32CubeMX实现串口打印hello world

环境
硬件:stm32f103c8t6 核心板(usb tx接核心板A10,Rx接A09)
软件:STM32CubeMX
软件:keil5 mdk
cubeMX配置:

晶振配置在这里插入图片描述
时钟配置(根据自己板子上的晶振频率酌情设置)注: HSE:外部高速晶振 LSE:外部低速晶振
在这里插入图片描述
使能USART1 全局中断

点击 GENERATE CODE 生成代码。然后打开工程

在keil5 mdk:
在文件stm32f1xx_hal_uart.h开头添加代码

/* External variables --------------------------------------------------------*/
extern UART_HandleTypeDef huart1; //声明串口
/* USER CODE BEGIN EV */

在文件 main.c中的while循环里添加代码
/* USER CODE BEGIN PV /
uint8_t TxBuffer[] = “hello windows!”;
/
USER CODE END PV */

while (1)
  {
   		HAL_UART_Transmit_IT(&huart1, TxBuffer, sizeof(TxBuffer));
		 HAL_Delay(1000);  //延时1s
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
  }
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    if(huart->Instance == USART1)
    {
		HAL_UART_Transmit_IT(&huart1,(uint8_t *)RxBuffer,10);
		HAL_UART_Receive_IT(&huart1,(uint8_t *)RxBuffer,10);
    }
}

编译,将程序烧录或下载进核心板,打开串口助手查看接收到的数据
在这里插入图片描述
在增加新功能:实现板载led亮,要在cubeMX配置GPIO

UART函数库

HAL_UART_Transmit():串口发送数据,使用超时管理机制
HAL_UART_Receive():串口接收数据,使用超时管理机制
HAL_UART_Transmit_IT():串口中断模式发送
HAL_UART_Receive_IT():串口中断模式接收
HAL_UART_Transmit_DMA():串口DMA模式发送
HAL_UART_Transmit_DMA():串口DMA模式接收

printf重定向办法:

#include "stdio.h"
printf("freeRTOS test\r\n");
int fputc(int ch, FILE *f){
	HAL_UART_Transmit(&huart1, (uint8_t *)&ch,1,HAL_MAX_DELAY);
	return ch;
}
int fgetc(FILE *f){
	uint8_t ch;
	HAL_UART_Receive(&huart1, (uint8_t *)&ch,1,HAL_MAX_DELAY);
	return ch;
}
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用STM32CubeMX进行蓝牙串口通信配置时,首先需要将HC-05蓝牙模块连接到STM32开发板上。在配置完成后,主从两机重新上电,不需要按按键,进入正常模式,此时HC-05指示灯会快闪。等待几秒钟后,主从两机会自动配对完成,指示灯会以5秒的时间间隔闪烁,表示主从两机连接成功。\[1\] 在STM32CubeMX中,需要对STM32进行相应的配置。HC-05蓝牙模块是主从一体的,两个HC-05之间进行通信时,需要进入AT模式,对HC-05模块进行相应的设置。为了进入AT模式,需要通过TTL转USB模块将HC-05蓝牙模块连接到电脑上。在上电之前,需要一直按住HC-05上的按键,然后上电后松开按键,此时指示灯会慢闪,表示进入AT模式。\[2\] 在主函数循环中,可以使用以下代码进行蓝牙串口通信: ```c uint8_t SendBuffer\[30\] = "hello,world!"; HAL_UART_Transmit(&huart2, (uint8_t *)SendBuffer, sizeof(SendBuffer), HAL_MAX_DELAY); ``` 以上代码将"hello,world!"发送到UART2串口实现了蓝牙串口通信。\[3\] #### 引用[.reference_title] - *1* *2* *3* [基于STM32CubeMX的HC-05蓝牙主从通讯](https://blog.csdn.net/m0_59551305/article/details/126634445)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值