为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

Stm32f103vct6在keil mdk 下使用 串口4,5 (UART4,UART5)实例

2019-02-01 4页 doc 15KB 163阅读

用户头像

is_729658

暂无简介

举报
Stm32f103vct6在keil mdk 下使用 串口4,5 (UART4,UART5)实例Stm32f103vct6在keil mdk 下使用串口4,5 (UART4,UART5)实例 1 中断向量表应包括UART4,UART5 的中断入口函数名称的定义 STM32F10x.s 该文件不包括UART4,UART5 的中断入口函数名称的定义startup_stm32f10x_cl.s 该文件包括UART4,UART5 的中断入口函数名称的定义, 所以把它加入项目文件里面 2串口初始化UART5 // 注意要用UART5 不是USART5 void uart_init5(u32 pclk1,u32 boun...
Stm32f103vct6在keil mdk 下使用 串口4,5 (UART4,UART5)实例
Stm32f103vct6在keil mdk 下使用串口4,5 (UART4,UART5)实例 1 中断向量表应包括UART4,UART5 的中断入口函数名称的定义 STM32F10x.s 该文件不包括UART4,UART5 的中断入口函数名称的定义startup_stm32f10x_cl.s 该文件包括UART4,UART5 的中断入口函数名称的定义, 所以把它加入项目文件里面 2串口初始化UART5 // 注意要用UART5 不是USART5 void uart_init5(u32 pclk1,u32 bound) //串口2,3,4,5 用pclk1 36m 调用格式uart_init5 (36,9600); //9600波特率pclk1 =36m { float temp; u16 mantissa; u16 fraction; temp=(float)(pclk1*1000000)/(bound*16);//得到USARTDIV mantissa=temp; //得到整数部分 fraction=(temp-mantissa)*16; //得到小数部分 mantissa<<=4; mantissa+=fraction; RCC->APB2ENR|=1<<5; //使能PORTd时钟 RCC->APB2ENR|=1<<4; //使能PORTc时钟 RCC->APB1ENR|=1<<20; //使能串口5时钟20位UART5EN:UART5时钟使能(UART 5 clock enable) RCC->APB1RSTR|=1<<20; //复位串口5 RCC->APB1RSTR&=~(1<<20);//停止复位 //波特率设置 UART5->BRR=mantissa; // 波特率设置 UART5->CR1|=0X200C; //1位停止,无校验位. PRxd5_SL; //本人的DEFINE 接收脚输入上拉 PTxd5_out; //本人的DEFINE 发送脚推挽输出 PTxd5_1; //本人的DEFINE 发送脚输出1 UART5->CR1|=1<<8; //PE中断使能 UART5->CR1|=1<<5; //接收缓冲区非空中断使能 MY_NVIC_Init(3,3,UART5_IRQChannel,2);//抢占优先级是3 响应优先级是3 组2,最低优先级 } 3接收中断服务函数 void UART5_IRQHandler(void) // 注意要用UART5 不是USART5 // UART5_IRQHandler 注意函数名不要写错 { u8 data; if(UART5->SR&(1<<5))//接收到数据 { data=UART5->DR; BufRxdBenq[QHead++]=data; //把数据放入先进先出缓冲区 if(QHead>=BUF_RXD_BENQ_MAX) //满了从0开始 QHead=0; if(QHead==QTail) { QTail++; if(QTail>=BUF_RXD_BENQ_MAX) //满了从0开始 QTail=0; } CntRxdBenqFree=0; //232接收忙计数器 if(data==0x0a||data==0X7E) //收到一条指令的结束标志{ BRxdBenq0x0d=1; //置位 } } } 4发送函数 void SendByte5( unsigned char c_byte )//发送给模块gsm { UART5->DR=c_byte; while((UART5->SR&0X40)==0);//等待发送结束 }
/
本文档为【Stm32f103vct6在keil mdk 下使用 串口4,5 (UART4,UART5)实例】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索