#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);
}
}

最新文章

  1. Hadoop 和 HDInsight:Windows Azure 中的大数据
  2. Sublime Text 3 3126 注册码 + 下载地址
  3. 创建和删除节点:——核心DOM
  4. 烂泥:ubuntu下配置msmtp+mutt发送邮件
  5. 对struct和class使用大括号初始化的测试
  6. 通过代码的方式完成WCF服务的寄宿工作
  7. Docker第三方项目小结
  8. "由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的解决方案
  9. 【原创】解决鼠标经过子元素触发mouseout,mouseover事件的问题
  10. 咏南多层开发框架支持最新的DELPHI 10 SEATTLE
  11. emWin(ucGui) Edit控件数值模式 ——符号编辑 worldsing
  12. 使用SeaJS实现模块化JavaScript开发
  13. 【Linux常用工具】1.1 diff命令的三种格式
  14. WIZnet即将推出高性能网络芯片W5500
  15. iOS enum 定义与使用
  16. vue-输入框change事件并获取值
  17. vue搭建前端相关命令
  18. 常见的js算法
  19. macos 下通过sublime text 3 + gosublime+sublimegdb 开发注意事项
  20. 【mybatis源码学习】mybtias扩展点

热门文章

  1. JZOJ 4213. 【五校联考1day2】对你的爱深不见底
  2. CCRD_TOC_2007_EULAR专辑_2
  3. PyOpenGL的安装与错误解决
  4. 如何创建一个浏览器版的`Window11`
  5. javaSE学习二
  6. 时间序列分析 2.X 单位根检验
  7. vite+vue3.0+ts搭建项目
  8. vue实现全部防抖
  9. Wifi Display
  10. GitLab能通过ssh克隆无法通过http克隆,也无法进行流水线,提示port 80: Connection refused