cortex_m3_stm32嵌入式学习笔记(三):串口实验(串口通信)
来源:互联网 发布:js onload方法 编辑:程序博客网 时间:2024/06/05 00:51
串口,可以理解为是用来和上位机(比如电脑)对话的,本节实验实现的是stm32接收上位机发送过来的信息,在原原本本的返回过去
stm32有5路串口,本节学习的是其中之一的USB串口(USART1)和学习IO口一样,首先要配置串口,由于原子已经配好了写在sys文件里,本渣就本着不造轮子的理念(其实是太难不懂orz),先跳过去了。。
所以本工程只需要一个main函数即可
#include "led.h"#include "sys.h"#include "delay.h"#include "usart.h"void init(void){delay_init();LED_Init();NVIC_Configuration();//设置中断分组uart_init(9600);//串口初始化,波特率9600}int main(void){u8 i,len;u16 times=0;init();while(1){if(USART_RX_STA&0X8000)//接收到了数据{len=USART_RX_STA&0xfff//printf("\r\n泥发送的消息为:\r\n");for(i=0;i<len;i++){USART1->DR=USART_RX_BUF[i];while((USART1->SR&0X40)==0);//等待发送结束}printf("\r\n\r\n");USART_RX_STA=0;}else//不接收数据时{++times;if(times%5000==0)printf("\r\nlove\r\n");if(times%30==0)LED0=!LED0;delay_ms(10);}}}可能上面的代码有点看不懂,我们翻到usart.c 里面有这么一段代码
//串口1中断服务程序//注意,读取USARTx->SR能避免莫名其妙的错误 u8 USART_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.//接收状态//bit15,接收完成标志//bit14,接收到0x0d//bit13~0,接收到的有效字节数目u16 USART_RX_STA=0; //接收状态标记
0x8000对应的2进制 100000000000000
0x3fff 对应的2进制 0011111111111111
这样就很明显了。。(感觉离底层越来越远了)
将程序烧进去之后打开串口调试助手 界面显示如下:
还会看到LED一直闪烁。。说明程序应该没问题
1 0
- cortex_m3_stm32嵌入式学习笔记(三):串口实验(串口通信)
- cortex_m3_stm32嵌入式学习笔记(二十一):SPI实验(通信总线)
- cortex_m3_stm32嵌入式学习笔记(四):外部中断实验
- cortex_m3_stm32嵌入式学习笔记(五):独立看门狗实验(IWDG)
- cortex_m3_stm32嵌入式学习笔记(六):窗口看门狗实验(WWDG)
- ZigBee组网学习笔记(三 )--协议栈串口实验
- stm32学习笔记(三)串口通讯实验
- cortex_m3_stm32嵌入式学习笔记(一):建立工程模板+跑马灯实验(IO输出)
- cortex_m3_stm32嵌入式学习笔记(二):独立按键实验(IO输入)
- cortex_m3_stm32嵌入式学习笔记(八):定时器中断实验(定时器的更新中断)
- cortex_m3_stm32嵌入式学习笔记(九):PWM 输出实验(定时器的PWM输出)
- cortex_m3_stm32嵌入式学习笔记(十):输入捕捉实验(定时器的输入捕捉)
- cortex_m3_stm32嵌入式学习笔记(十五):待机唤醒实验(WK_UP外部中断)
- cortex_m3_stm32嵌入式学习笔记(十六):ADC实验(模数转换)
- cortex_m3_stm32嵌入式学习笔记(十八):DAC实验(数模转换)
- cortex_m3_stm32嵌入式学习笔记(十九):DMA实验(高速传输)
- cortex_m3_stm32嵌入式学习笔记(二十):IIC实验(I2C串行总线)
- cortex_m3_stm32嵌入式学习笔记(二十三):红外遥控实验(输入捕捉+解码)
- 黑马程序员-①C语言查漏补缺总结(上)
- 如何禁用 Oracle Database Vault
- 不能在析构函数里面抛出异常
- <无聊>学军中学推理社2017届招新试题
- IAR的stm32f10x_vector.c文件的定义
- cortex_m3_stm32嵌入式学习笔记(三):串口实验(串口通信)
- 大数据
- Android 之设计/界面
- 纯代码适配iPad横竖屏
- GitHub 配置及简单使用
- AlertDialog中的单复选
- HttpWatch工具简介及使用技巧
- 014 while语句
- 使用可编辑JComboBox的时遇到的一个坑,编辑后如果JCombobox的焦点还在,则获取不到当前的编辑值。