原创 【UFUN开发板评测】感谢面包板和张老师提供的机会,让我重新捡起来20年前的知识内容 ...

2019-6-9 22:18 2019 11 11 分类: 管理

周末

端午节

放假

办公室

我独自一人

空调下

电脑前

无杂事的烦扰

唯面包板社区

 

单片机

ARM

UFUN

好多资源

尽情享受

面包板管理员

进东老师

无私奉献电子工程师

全心服务在校大学生

 

面包板

好社区

人才济济

汇聚中华精英

电子技术

嵌入开发

那家敢说比我强

唯我大面包板

 

惊帆
新科技

创未来

华苑

新地标

问天

不拘一格

问地

标新立异

 

经过前面的一段时间的学习,我重新捡起来了单片机和ARM的知识。非常感谢面包板社区和张老师举办的这次活动。

 

在面包板社区申请到了UFUN的开发板,很高兴,因为可以继续学习。我年纪大了,学习起来也是比较慢的。还有在别人的帮助下,我起逐渐的回忆起,之前学习的知识。也希望我自己能一直学下去,毕竟学无止境,别人我不能保证,至少我会一直支持下去的。

 

虽然我学习比较慢,但是我的心得绝对的最丰富的。学习了这么久,总结下UFUN给我带来的惊喜。

 

1、实力雄厚

我了解的UFUN的企业是实力是非常雄厚的,高科技创业型团队。一直致力于技术等各个方面的研究,提供更专业的技术与服务,把最优质的产品推向市场,更好地服务用户,在质量和服务上一直处于领先地位。

2、技术领先

经过多年的技术沉淀,公司有很多优秀的人才,优秀的技术专家。优秀的人才为技术领先提供有力的保证。

3、细节完美

强大的研发团队持续跟踪用户体验,微信群内直接解答问题,为了产品的精益求精,不断创新和改进UFUN

 

在学习的过程中,了解了一下串口的传输,实验如下。

 

#include "sys.h"

#include "delay.h"

#include "usart.h"

 

 

  u8 rdata[1];

 

 UART_HandleTypeDef usart1_handler; //UART句柄

 void uart1_init()

{

       usart1_handler.Instance=USART1;                                       //USART1

       usart1_handler.Init.BaudRate=9600;                              //波特率

       usart1_handler.Init.WordLength=UART_WORDLENGTH_8B;   //字长为8位数据格式

       usart1_handler.Init.StopBits=UART_STOPBITS_1;        //一个停止位

       usart1_handler.Init.Parity=UART_PARITY_NONE;               //无奇偶校验位

       usart1_handler.Init.HwFlowCtl=UART_HWCONTROL_NONE;   //无硬件流控

       usart1_handler.Init.Mode=UART_MODE_TX_RX;                //收发模式

       HAL_UART_Init(&usart1_handler);                                     //HAL_UART_Init()会使能UART1

 

}

 

void HAL_UART_MspInit(UART_HandleTypeDef *huart)

{

  

       GPIO_InitTypeDef GPIO_Initure;

      

       if(huart->Instance==USART1)//如果是串口1,进行串口1 MSP初始化

       {

              __HAL_RCC_GPIOA_CLK_ENABLE();                  //使能GPIOA时钟

              __HAL_RCC_USART1_CLK_ENABLE();                //使能USART1时钟

      

              GPIO_Initure.Pin=GPIO_PIN_9;                //PA9

              GPIO_Initure.Mode=GPIO_MODE_AF_PP;             //复用推挽输出

              GPIO_Initure.Pull=GPIO_PULLUP;                  //上拉

              GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;          //高速

              //GPIO_Initure.Alternate=GPIO_AF7_USART1; //复用为USART1

              HAL_GPIO_Init(GPIOA,&GPIO_Initure);       //初始化PA9

 

              GPIO_Initure.Pin=GPIO_PIN_10;                     //PA10

              HAL_GPIO_Init(GPIOA,&GPIO_Initure);       //初始化PA10

 

              HAL_NVIC_EnableIRQ(USART1_IRQn);          //使能USART1中断通道

              HAL_NVIC_SetPriority(USART1_IRQn,3,3);    //抢占优先级3,子优先级3

       }

}

 

void USART1_IRQHandler(void)  

{

       HAL_UART_IRQHandler(&usart1_handler);

      

       while (HAL_UART_GetState(&usart1_handler) != HAL_UART_STATE_READY);//等待就绪

    while(HAL_UART_Receive_IT(&usart1_handler, (u8 *)rdata, 1) != HAL_OK);

 

}

      

 

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)

{

  u8 rec;

  if(huart->Instance==USART1)//如果是串口1

  {

       rec=*(--(huart->pRxBuffPtr));

    HAL_UART_Transmit(&usart1_handler,&rec,1,1000);

  }

 

}

 

 

int main(void)

{

 

    HAL_Init();                     //初始化HAL   

    Stm32_Clock_Init();   //设置时钟,72Mhz

    delay_init(72);

      

       uart1_init();//初始化串口参数

 

       HAL_UART_Receive_IT(&usart1_handler, (u8 *)rdata, 1);//该函数会开启接收中断:标志位UART_IT_RXNE,并且设置接收缓冲以及接收缓冲接收最大数据量

      

    while(1)

       {

             

       }

      

}



作者: curton, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3876349.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条