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
|