一、基于寄存器与固件库的编程方式差异
1.基于寄存器编程
特点:
(1)寄存器更贴近底层,对外设的工作原理和运行机理会有更深的理解。
(2)可以深入理解CortexM3内核以及有更好的可移植性。
2.基于固件库编程
特点:
(1)简单,易于理解,适合新手直接上手
(2)外设简单
二、STM32的USART窗口通讯程序
具体要求:
1)设置波特率为115200,1位停止位,无校验位。
2)STM32系统给上位机(win10)连续发送“hello windows!”,上位机接收程序可以使用“串口调试助手“,也可自己编程。
3)当上位机给stm32发送“Stop,stm32”后,stm32停止发送
参考地址:
https://www.pianshen.com/article/8285571527/
准备工作:
1.安装keil(要求版本在5以上)
2.安装USB转串口驱动
3.安装野火提供的多功能助手
1安装USB转串口驱动
安装USB驱动时,需要保持开发板与电脑通过USB线的连接。
2安装野火提供的多功能助手
在野火提供的资料包里找到“多功能调试助手”
双击运行即可,此时显示设置串行口调试设置波特率为115200,1位停止位,无校验位如下:
3验证串口通信
在野火提供的例程中找到测试程序“串口接发”。
1)修改stm32f10x_it.c文件的串口中断服务函数:
int i=0;
uint8_t ucTemp[50];
void DEBUG_USART_IRQHandler(void)
{
if(USART_GetITStatus(DEBUG_USARTx,USART_IT_RXNE)!=RESET)
{
ucTemp[i] = USART_ReceiveData(USART1);
}
if(ucTemp[i] == '!')
{
if(ucTemp[i-1] == '2'&&ucTemp[i-2] == '3'&&ucTemp[i-3] == 'm'&&ucTemp[i-4] == 't'&&ucTemp[i-5] == 's'&&ucTemp[i-6] == ' ')
if(ucTemp[i-7] == 'p'&&ucTemp[i-8] == 'o'&&ucTemp[i-