完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
uart.c
void USART1_Init(u32 bound){ //串口1初始化并启动 //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA时钟 //USART1_TX PA.9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure); //USART1_RX PA.10 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOAtiNG;//浮空输入 GPIO_Init(GPIOA, &GPIO_InitStructure); //USART 初始化设置 USART_InitStructure.USART_BaudRate = bound;//一般设置为9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式 USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位 USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式 USART_Init(USART1, &USART_InitStructure); //初始化串口 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启ENABLE/关闭DISABLE中断 USART_Cmd(USART1, ENABLE); //使能串口 } u8 rx_buffer[20]; u8 flag=0; u8 i=0; void USART1_IRQHandler(void){ //串口1中断服务程序(固定的函数名不能修改) u8 res; if(USART_GetITStatus(USART1,USART_IT_RXNE) != RESET) { res = USART_ReceiveData(USART1); if(flag != 4) { rx_buffer[i++] = res; flag ++; } USART_ClearITPendingBit(USART1,USART_IT_RXNE);//清除串口3的串口接收中断标志位 } } main.c #include "STM32f10x.h" //STM32头文件 #include "delay.h" #include "usart.h" extern u8 rx_buffer[]; int main (void){//主程序 u8 sum; u32 dis=0; //初始化程序 RCC_Configuration(); //时钟设置 USART1_Init(9600); //串口初始化(参数是波特率) //主循环 while(1){ sum = (rx_buffer[0] + rx_buffer[1] + rx_buffer[2]) & 0x00FF; //A02校验和,前三项加和的低8位 if((rx_buffer[0] == 0xFF)&&(rx_buffer[3] == sum)) //帧头0XFF,帧尾校验和 { dis = (rx_buffer[1] << 8) + rx_buffer[2]; //数据高八位和低八位 } } } |
|
相关推荐
1 条评论
1个回答
|
|
|
这个串口是没有显示连接上还是只是没有数据?
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔MYC-LR3576开发板的实时视频识别系统设计与实现
304 浏览 0 评论
飞凌嵌入式ElfBoard-文件I/O的深入学习之阻塞I/O与非阻塞I/O
466 浏览 0 评论
大神们,想知道你们都用什么ide编程调试器? Arduino IDE?还是 e2studio ?还有其他吗?哪个好用呢
580 浏览 0 评论
865 浏览 0 评论
837 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 17:25 , Processed in 0.718475 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1446