EDA365电子论坛网
标题: 串口 printf 打印实验和串口收发数据实验 [打印本页]
作者: sweetwendy 时间: 2019-8-21 16:37
标题: 串口 printf 打印实验和串口收发数据实验
本帖最后由 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, 下载次数: 7)
-
2.png
(16.85 KB, 下载次数: 9)
-
3.png
(44.73 KB, 下载次数: 10)
-
4.png
(49.63 KB, 下载次数: 9)
-
5.png
(20.18 KB, 下载次数: 9)
-
6.png
(28.65 KB, 下载次数: 9)
-
7.png
(45.38 KB, 下载次数: 8)
-
8.png
(15.66 KB, 下载次数: 9)
-
9.png
(17.16 KB, 下载次数: 9)
-
10.png
(37.43 KB, 下载次数: 9)
-
11.png
(282.84 KB, 下载次数: 10)
-
12.png
(40.73 KB, 下载次数: 10)
作者: jacky401 时间: 2019-8-22 07:32
内容总结比较全,理解比较到位,实训任务都已预期完成,为你点赞!
| 欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) |
Powered by Discuz! X3.2 |