UART4模板
#define UART4_Bps 9600
#define UART4_RecSize 20
uchar UART4_RecData[UART4_RecSize];
uchar UART4_Loc;
void UART4_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
//----------GPIO Init----------
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
//UART4_TX
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
//UART4_RX
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOC, &GPIO_InitStructure);
//----------USART Init----------
RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4,ENABLE);
USART_InitStructure.USART_BaudRate = UART_Bps;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
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(UART4, &USART_InitStructure);
//----------NVIC Init----------
NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
//----------Enable----------
USART_ITConfig(UART4, USART_IT_RXNE, ENABLE);
USART_Cmd(UART4, ENABLE);
}
void UART4_SendData(uchar Data)
{
while(USART_GetFlagStatus(UART4,USART_FLAG_TC)!= SET);
USART_SendData(UART4, Data);
}
void UART4_IRQHandler(void)
{
if(USART_GetITStatus(UART4, USART_IT_RXNE) != RESET)
{
UART4_RecData[UART4_Loc++] = USART_ReceiveData(UART4);
}
}
最新文章
- Hadoop 和 HDInsight:Windows Azure 中的大数据
- Sublime Text 3 3126 注册码 + 下载地址
- 创建和删除节点:——核心DOM
- 烂泥:ubuntu下配置msmtp+mutt发送邮件
- 对struct和class使用大括号初始化的测试
- 通过代码的方式完成WCF服务的寄宿工作
- Docker第三方项目小结
- ";由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断";的解决方案
- 【原创】解决鼠标经过子元素触发mouseout,mouseover事件的问题
- 咏南多层开发框架支持最新的DELPHI 10 SEATTLE
- emWin(ucGui) Edit控件数值模式 ——符号编辑 worldsing
- 使用SeaJS实现模块化JavaScript开发
- 【Linux常用工具】1.1 diff命令的三种格式
- WIZnet即将推出高性能网络芯片W5500
- iOS enum 定义与使用
- vue-输入框change事件并获取值
- vue搭建前端相关命令
- 常见的js算法
- macos 下通过sublime text 3 + gosublime+sublimegdb 开发注意事项
- 【mybatis源码学习】mybtias扩展点
热门文章
- JZOJ 4213. 【五校联考1day2】对你的爱深不见底
- CCRD_TOC_2007_EULAR专辑_2
- PyOpenGL的安装与错误解决
- 如何创建一个浏览器版的`Window11`
- javaSE学习二
- 时间序列分析 2.X 单位根检验
- vite+vue3.0+ts搭建项目
- vue实现全部防抖
- Wifi Display
- GitLab能通过ssh克隆无法通过http克隆,也无法进行流水线,提示port 80: Connection refused