stm32串口通讯
一、基于寄存器与基于固件库的stm32 LED流水灯例子的编程方式有什么差异
基于寄存器:为了获得更好的可移植性,学习寄存器编程会比较好。寄存器更贴近底层,可以更好的理解外设的工作原理。
基于固件库:比较简单,易于理解,可供我们参考的资料也比较多,比较适合初学者。
二、STM32的USART窗口通讯程序
1、将核心板按照原理图连接好。
原理图如下:
2、烧录程序
(1)打开下载好的keil工程
(这张图片下面是广告,我就擦除了。)
(2)打开工程之后,就把自己连接好的核心板连接到电脑上,打开设备管理器
(3)在keil软件中进行编译
(4)调整设置
(5)下面进行烧录,完成后如图
(6)打开野火多功能调试助手,进行验证
备注:相关代码(main函数部分)
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include <stdlib.h>
int hcr=1;
int main(void)
{
char stop[]={
'S','t','o','p',',','s','t','m','3','2'};
u16 t;
u16 len;
u16 times=0;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
LED_Init();
KEY_Init();
while(hcr)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;
printf("\r\nhello windows!:\r\n\r\n");
for(t=0;t<len&&USART_RX_BUF[t]==stop[t];hcr++,t++)
{
if (hcr>=10) {
hcr=0;break;}}
for(t=0;t