嵌入式LAB 4:Bootloder

前期工作准备

Mac OS X + Windows 7虚拟机
安装STM32 ST-LINK Unity。用于烧录程序。
安装STM32 ST-LINK所需要的驱动
安装Keil UVision 5,这是IDE,可以生成Hex文件,也可以烧录到板子上。
安装USB-TTL所以需要的驱动。
安装PUTTY,Windows下查看串口。

器材准备

STM32F103板子一个
ST-LINK V2
USB-TTL
不需要面包板、按钮等

实验流程

串口收发

由于要通过串口发送命令至STM32板子,首先需要解决的是串口收发的问题。主要经过的流程是:USART1_IRQHandler → HAL_UART_IRQHandler → HAL_UART_Receive_IT → HAL_UART_RxCpltCallback。

USART1_IRQHandler主要的功能是打开了USART1的中断,覆盖函数USART1_IRQHandler()处理中断。

嵌入式LAB 4:Bootloder_第1张图片

HAL_UART_Receive_IT函数是STM32的库函数,就是起着设置信息存放位置的作用,三个参数分别表示接收信息的UART句柄,接收信息的Buffer地址以及接受信息长度。该函数在接收到信息之后,会在Buffer指向的地址顺序写入字符,并在达到指定长度之后调用回调函数HAL_UART_RxCpltCallback。HAL_UART_RxCpltCallback处理的是业务逻辑。

以上几步是通过对中断进行处理,将串口的信息读入到缓冲区内存放。而程序要使用的时候,直接进行读取即可。为了方便,应该封装一个队串口读取字符串的函数。

嵌入式LAB 4:Bootloder_第2张图片

下面是主函数的代码(PEEK和POKE),为了增加鲁棒性做了很多考虑,所以在用户乱输入的情况下也不会崩溃。主要的思路可以观看注释。
嵌入式LAB 4:Bootloder_第3张图片

连接示意图
嵌入式LAB 4:Bootloder_第4张图片

烧录程序示意图
嵌入式LAB 4:Bootloder_第5张图片

擦出并烧录
嵌入式LAB 4:Bootloder_第6张图片

实验结果:实验先观察了0x200004b8的内容。再往0x200004a8写入一个字符串。在通过poke观察写入的值。
嵌入式LAB 4:Bootloder_第7张图片

你可能感兴趣的:(嵌入式,嵌入式)