欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

学习报告

程序员文章站 2022-06-23 20:18:48
学习报告一、USART的学习(1)学习目标:1、使用串口调试助手对单片机外设进行一些简单的控制,比如控制LED灯的亮灭2、使用串口调试助手对舵机进行控制(2)学习成果展示:(3)学习改目标遇到的困难:1、已确定代码无问题,但是发送给串口的数据就是无法通过usart中断函数发送到PC的串口调试助手打印窗口。在历时6个小时后,终于解决了,真就不是代码的问题,而是软件的设置有问题。二、USART与OPENMV结合(2)学习目标:你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。...

学习报告

一、USART的学习
(1)学习目标:
任务一、使用串口调试助手对单片机外设进行一些简单的控制,比如控制LED灯的亮灭
任务二、使用串口调试助手对舵机进行控制
(2)学习成果展示:
任务一:利用usart中断控制LED
任务二:利用usart中断控制舵机
(3)学习目标任务过程中遇到的困难:
1、已确定代码无问题,但是发送给串口的数据就是无法通过usart中断函数发送到PC的串口调试助手打印窗口。在历时6个小时后,终于解决了,真就不是代码的问题,而是软件的设置有问题。
先说解决办法:找到keil主页面的“魔术棒”如下图(中间那个):学习报告
然后点进去找到“target”一栏,找到“use micrllib”的字样,在其前面勾选,如下图学习报告
这样,问题就解决了!串口成功接收!学习报告
1.1勾选use micrllib原因:
1.1.1、勾选use micrllib将使用半主机模式,半主机模式是用于 ARM 目标的一种机制,可将来自应用程序代码的输入/输出请求传送至运行调试器的主机。 例如,使用此机制可以启用 C 库中的函数,如 printf() 和 scanf(),来使用主机的屏幕和键盘,而不是在目标系统上配备屏幕和键盘。 这种机制很有用,因为开发时使用的硬件通常没有最终系统的所有输入和输出设备。 也就是说勾选后半主机可让主机来提供这些设备。勾选之后简单的来说,半主机模式就是通过仿真器实现开发板在电脑上的输入和输出
1.1.2、不勾选use micrllib的话,printf重定向代码部分要改成如下:

#pragma import(__use_no_semihosting) 
struct __FILE 
{ 
int handle; 
}; 
FILE __stdout;       
_sys_exit(int x) 
{ 
x = x; 
} 
int fputc(int ch, FILE *f)
{
		/* 发送一个字节数据到串口 */
		USART_SendData(DEBUG_USARTx, (unsigned char )ch);
		
		/* 等待发送完毕 */
		while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_TXE) == RESET);		
	
		return (ch);
}


改成这样之后我一打开串口调试助手,接收屏幕就不断发送乱字符,如下:学习报告

然后在main函数里面加了一段代码:
while(1)
{
}
然后就可以正常接收了。。。。。。。。。。(具体原因还有待深究)
学习报告
2、第二个困难:

由于我不想给屏幕上发送uctemp的值,觉得臭,然后注释掉了下面那段代码:

USART_SendData(DEBUG_USARTx,ucTemp); 

但是注释掉之后发现不能连续发送指令控制LED了,查了手册之后才发现,原因如下蓝色字体:学习报告
就是说如果未发送数据就退出不了中断。。。。会永远停留在如下的语句当中:学习报告

所以每次复位单片机后只能发送一次指令并执行。

二、USARTOPENMV结合
(1)学习目标:
任务一、利用串口通信将openmv与stm32进行一个简单的通信,并点亮一个灯。
(2)学习成果展示:
(3)学习中遇到的困难:
3.1:
刚开始接触openmv,什么都不会,想要把openmv往pC机的串口调试助手发送颜色块的中心位置,结果发现总是打开不了串口调试助手,显示串口正再被占用。后来才知道,openmvide本身就有个类似串口调试助手的终端,是这里占用了。想要openmv独立运行代码而不使用openmvide的串口终端,就必须使用脱机运行。
如何脱机运行呢?下面这个链接有教程,是openmv中国代理的一家公司的教程:openmv如何脱机运行,看完即可
3.2
openmv通过串口发送单个数据可以,但是发送多个数据总是接收不到,这个还未解决。

学习总结:本此任务未圆满完成,openmv和stm32的未完全通信

下周任务准备:完成上次未完成的任务,下次任务视情况而定。

本文地址:https://blog.csdn.net/qq_47146145/article/details/109681282

相关标签: 笔记