完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、实验环境
1.1、软件环境 MDK5.30、CUBEMX6.1、猫猫串口助手 1.2、硬件环境 自制STM32H750VBT开发板(师傅所制)、正点原子的DAP 二、使用CUBEMX配置串口 2.1、配置串口uart4 特别需要注意的地方是:红色框框,也就是串口四的GPIO,这个软件默认的UART4的GPIO和我板子上的并不对应,所以需要自己重新设定!选择完正确的GPIO之后,就不用管这一块的,其他的默认就好 2.2、时钟配置 这里我设定的时钟是400MHZ,方法很简单,只需现将红色框的几个地方勾选上,然后再蓝色框里面输入400,之后按下回车键,即可自动配置好!如下图所示: 到这里,及配置好了,剩下就生成工程即可,在下面的几个点需要注意一下: 第一个框框是为了只用拷贝有用的文件,没有必要选择第一个选项!第二个框框是将里面的一些外设的配置都生成独立的.c和.h文件,这样比较好一些,不过这个因人而异!下面点击生成代码即可! 2.3、串口输出的重定向,即使能printf函数 首先我们打开uart.c文件,在文件的尾部追加下面的代码 int fputc(int ch, FILE *f) { unsigned char dat; dat = (unsigned char)ch; HAL_UART_Transmit(&huart4,(uint8_t *)(&dat),1,5); return ch; } 注意追加的位置哦,看看菜哥在哪里追加的,不然你下次重新生成代码的时候,他们就不翼而飞了哦! 别忘记了在main.h文件中包含stdio.h这个头文件哦,若是你要问为什么,那就告诉你,听话的孩子有奶吃!好啦,现在我们就可以在main函数里面做法了,看看菜哥是怎么写的测试程序! int main(void) { /* USER CODE BEGIN 1 */ char *pdata = "123456789"; /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_UART4_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ //HAL_UART_Transmit(&huart4, (uint8_t *)pdata, strlen(pdata), 0xFFFF); printf("%srn", pdata); HAL_Delay(1000); } /* USER CODE END 3 */ } 嘻嘻,下一步,编译下载即可,不过,你可能会发现,你的程序没有正常的工作哦!当你把printf函数注释掉后,你的程序又开始正常工作啦!嘻嘻,问题就在于高版本的CUBEMX干了这么一件事,那就是把microLIB库给你默认是不勾选的,所以你的printf 函数开始作妖了,所以你需要在MDK的这个位置勾选上MIcroLIB这个选项哦! 好啦,现在我们将程序下载到板板上,看看有什么惊喜!不错串口这边已经正常的打印 输出了! 好啦!CUBEMX高版本的存在这个问题,遇到同样问题的小伙伴可以试试看哦! 三、总结 这个问题也是今天才发现的,开始也是一头雾水,后面找了一下问题,想到可能就是MicroLIB库没有勾选,果然,问题就是出在这里啦!好啦,又成功的水了一期!文中有说错的地方欢迎小伙伴们在底下留言,最后:博主是一个又菜又爱玩的人! |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1568 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1513 浏览 1 评论
939 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
669 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1561 浏览 2 评论
1851浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
620浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
506浏览 3评论
511浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
492浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 06:31 , Processed in 0.729083 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号