找回密码
 注册
查看: 724|回复: 1
打印 上一主题 下一主题

串口 printf 打印实验和串口收发数据实验

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-8-21 16:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 sweetwendy 于 2019-8-21 16:50 编辑

实验一:串口 printf 打印实验(图1)。

file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png
其中的关键代码:
usart.c:
/* USER CODE BEGIN 0 */
#include <stdio.h>
intfputc(int ch,FILE *f)
{
       HAL_UART_Transmit(&huart2, (uint8_t*)&ch, 1, 0xFF);
       return(0);
}
/* USER CODE END 0 */

main.c中:
/* USER CODE BEGIN 3 */
printf("Welcomme to Elec-Nest!\r\n");
HAL_Delay(1000);
  }
  /*USER CODE END 3 */

创新实验的实验一,只需改动少许代码即可,改动代码和结果如下:

file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png
file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png
串口收发数据实验,参考EN-C200 串口 Printf 打印实验生成的代码基础上,在根据实验指导书采用第一种方法时,出现了难以解决的错误:aRxBuffer未定义。在不知道怎么解决的情况下,我们在下午上课时选择用第二种方式做一下,在第二种方式中,我发现了一句定义aRxBuffer的语句在方式一中未出现。方式二给的参考代码有一些小错误,需要结合上下文理解代码后改正。运行结果如下:
file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
各部分的关键代码如下:
usart.h

file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png
usart.c

file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png
file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png
main.c

file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg
file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png
file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png
之后我们研究创新实验的实验二用输入LED_ON点亮灯并LED_OFF灭灯时,我们遇到一些问题。这个问题的编程并不难,我们在c++也写过很多次这样的代码,但这个代码与c和c++有些不同,我们有点不知道该如何入手。之后我们组和隔壁组的同学开始了不同的尝试,但原理和我们想的基本一致:将输入的信息与要求的关键字比较,符合就进行灯亮或者灭的操作。由于关键字长度较短,我和我的组员选择了“笨办法”:逐一比较输入的字符,全部符合时就进行灯亮灭的操作。代码和实践截图如下(:

if(USART2_RX_BUF[0]== 'L' && USART2_RX_BUF[1] == 'E' && USART2_RX_BUF[2] == 'D'&&  USART2_RX_BUF[3] == '_'&& USART2_RX_BUF[4] == 'O' && USART2_RX_BUF[5] == 'N')

                      HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13,  GPIO_PIN_SET);

if(USART2_RX_BUF[0] == 'L' &&USART2_RX_BUF[1] == 'E' && USART2_RX_BUF[2] == 'D' &&  USART2_RX_BUF[3] == '_' &&USART2_RX_BUF[4] == 'O' && USART2_RX_BUF[5] == 'F'&& USART2_RX_BUF[6]== 'F')

                           HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png

1.png (75.68 KB, 下载次数: 0)

1.png

2.png (16.85 KB, 下载次数: 1)

2.png

3.png (44.73 KB, 下载次数: 2)

3.png

4.png (49.63 KB, 下载次数: 1)

4.png

5.png (20.18 KB, 下载次数: 2)

5.png

6.png (28.65 KB, 下载次数: 2)

6.png

7.png (45.38 KB, 下载次数: 1)

7.png

8.png (15.66 KB, 下载次数: 1)

8.png

9.png (17.16 KB, 下载次数: 2)

9.png

10.png (37.43 KB, 下载次数: 2)

10.png

11.png (282.84 KB, 下载次数: 3)

11.png

12.png (40.73 KB, 下载次数: 2)

12.png

该用户从未签到

2#
发表于 2019-8-22 07:32 | 只看该作者
内容总结比较全,理解比较到位,实训任务都已预期完成,为你点赞!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-2 20:45 , Processed in 0.078125 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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