串口初始化见:
STM32F407初学之串口:查询方式收发字符串教程与源码
http://www.51hei.com/bbs/dpj-135607-1.html
(出处: 单片机论坛)
串口中断步骤
1.串口初始化(略)
2.配置NVIC(设置优先级别,让NVIC相应该中断)
NVIC_SetPriority(USART1_IRQn, NVIC_EncodePriority((7-3),2,2));//core_cmd.h->1629
NVIC_EnableIRQ(USART1_IRQn); //core_cmd.h->1547
3.模块级中断使能(使能串口中断)
USART1->CR1 |=0x01<<5;
4.编写中断服务函数。//函数名在启动文件.S100行附近
- #include "includes.h"
- int main(void)
- {
- u8 data=10;
-
- //NVIC优先级分组
- NVIC_SetPriorityGrouping(7-2) ;
- LED_Init( );//LED初始化
- Key_Init( );
- Uart1_Init(84,115200);
-
-
- while(1)
- {
- if(revice_ok)
- {
- revice_ok=0;//清除标志
- printf("%s\r\n",rev_buf);//回发数据给PC端
- if( strcmp((const char *)rev_buf,(const char *)"OPEN") ==0)
- {
- LED1(0);//LED2(0);LED3(0);LED4(0);
- }
- if( strcmp((const char *)rev_buf,(const char *)"CLOSE")==0 )
- {
- LED1(1);//LED2(1);LED3(1);LED4(1);
- }
- }
-
-
- }
-
- }
复制代码
全部资料51hei下载地址:
串口中断接收字符串-添加特殊字符作结尾.rar
(1.22 MB, 下载次数: 63)
|