打印

STM32F4学习笔记之USART(使用固件库,中断方式)

[复制链接]
7721|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feng_710|  楼主 | 2013-4-25 14:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.USART的参数初始化(见查询方式)
2.开启串口接收中断
    USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
3.配置NVIC中的USART的等级
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_x);  //嵌套优先级分组为
        NVIC_InitStructure.NVIC_IRQChannel = USARTx_IRQn; //嵌套通道为USART1_IRQn
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = x; //抢占优先级为
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = x;    //响应优先级为
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;     //通道中断使能
        NVIC_Init(&NVIC_InitStructure);   
4.定义一个串口中断发送指针
    如char *USART_Send_Buf;
5.把要发的字符串的指针赋给串口中断发送指针,开启串口发送中断(可以打包成一个函数)(只是个演示,逻辑有问题,有bug,如果一个字符串还没发送完成,再给发送指针赋值,会把前面的挤掉)


void USART1_Puts(char * str)
{
USART_Send_Buf = str;
USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
}
6.编写中断服务程序

void USART1_IRQHandler(void)
{

  if (USART_GetITStatus(USART1, USART_IT_TXE) == SET)
  {

        USART_SendData(USART1, *USART_Send_Buf);
        USART_Send_Buf++;
        if(*USART_Send_Buf=='\0')
        USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
  }
  if (USART_GetITStatus(USART1, USART_IT_RXNE) == SET)
  {
         USART_SendData(USART1, USART_ReceiveData(USART1));       
          while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
  }     
}

沙发
hawksabre| | 2013-4-25 19:24 | 只看该作者
谢谢了   楼主   谢谢你的共享资料   不错   原创帖子  需要加精

使用特权

评论回复
板凳
fanenqiang| | 2013-4-25 22:51 | 只看该作者
学习了

使用特权

评论回复
地板
dcp| | 2013-4-30 14:14 | 只看该作者
STM32F4 固件库官网好象下载不到了,LZ可否上传一份呢?

使用特权

评论回复
5
feng_710|  楼主 | 2013-5-5 22:03 | 只看该作者
dcp 发表于 2013-4-30 14:14
STM32F4 固件库官网好象下载不到了,LZ可否上传一份呢?

固件库太大,上传不了,给你发个官方的链接吧,http://www.stmicroelectronics.com.cn/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257901

使用特权

评论回复
6
dcp| | 2013-6-6 22:13 | 只看该作者
feng_710 发表于 2013-5-5 22:03
固件库太大,上传不了,给你发个官方的链接吧,http://www.stmicroelectronics.com.cn/web/catalog/tools/ ...

y谢谢,在IAR的文件夹里找到了

使用特权

评论回复
7
feng_710|  楼主 | 2013-6-7 10:56 | 只看该作者
dcp 发表于 2013-6-6 22:13
y谢谢,在IAR的文件夹里找到了

不客气

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

51

帖子

3

粉丝