周末
端午节
放假
办公室
我独自一人
空调下
电脑前
无杂事的烦扰
唯面包板社区
单片机
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条评论)
登录后参与讨论