当前位置: 首页 > wzjs >正文

公司备案证查询网站查询cps广告联盟平台

公司备案证查询网站查询,cps广告联盟平台,沧州网站域名注册服务公司,做外贸公司 网站目录 一、CubeMX配置串口通讯(中断方式) 1.1串口实验(非中断) 1.2串口实验(中断) 1.3DMA方式 1.4常用函数 一、CubeMX配置串口通讯(中断方式) 1.1串口实验(非中断&a…

目录

一、CubeMX配置串口通讯(中断方式)

1.1串口实验(非中断)

1.2串口实验(中断)

1.3DMA方式

1.4常用函数


一、CubeMX配置串口通讯(中断方式)

1.1串口实验(非中断)

1、选定串口

d51aa40fe0cb408aadfe0da54b4d5044.png

2. 选择模式(异步通讯)

b6445db40bc4440b8d5d32ff20445c9e.png

3、串口配置577eaffbdf8a433ab117e827aa72b9f2.png

4、从魔术棒打开,这个勾勾一定要打上,否则 printf 无法重映射!

eefa779eadd142c0a121e2bb919f02a7.png

这里不需要开启中断!

代码实现:

#include <stdio.h>
#include <string.h>
unsigned char ch[20] = {0};int fputc(int ch, FILE *f)//重定义
{unsigned char temp[1]={ch};HAL_UART_Transmit(&huart1,temp,1,0xffff);return ch;
}main函数里:
unsigned char ch[20] = {0};
HAL_UART_Transmit(&huart1, "hello world\n", strlen("hello world\n"), 100);//发送数据
while(1)
{HAL_UART_Receive(&huart1, ch, 19, 100);//接收数据printf(ch);memset(ch, 0, strlen(ch));
}

1.2串口实验(中断)

通过中断的方法接受串口工具发送的字符串,并将其发送回串口工具

CubeMX配合与上面一样,这里使用到了中断,需要开启NVIC

a64a58d8b6754737abdff226cf387fb2.png

代码实现:

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{if(huart->Instance == USART1){/* 里面主要逻辑将接收到的buf保存到自己的大方即可,比如(数组、临时变量) */}// 重新开启中断HAL_UART_Receive_IT(&huart1, &buf, 1);}main函数:
{HAL_UART_Receive_IT(&huart1, &buf, 1);}

1.3DMA方式

使能USART1中断,串口使用DMA方式必须开启中断,否则程序发送一次数据后,不能判断DMA传输是否完成,串口会一直处于busy状态。

151b55b59abc49cfaba5cf4a267e925c.png

DMA参数配置,发送选择 DMA1 Stream 4通道,方向从存储器到外设,优先级为低。接收选择 DMA1 Stream 5通道,方向从外设到存储器。mode设置可以选择Normal表单次传输,传输一次后终止传输,Circular表示循环传输,传输完成后又重新开始继续传输,不断循环永不停止。此处选择单次传输,Mode为Normal。Data Width:串口数据发送寄存器只能存储8bit,每次发送一个字节,所以数据长度选择Byte。

dd17375947f64abebc7939729dd52783.png

代码实现:(main函数如下,每秒串口打印一次

/* USER CODE BEGIN 0 */
uint8_t aTxMessage[] = "\r\n****DMA Serial  communication***\r\n";
/* USER CODE END 0 *//*** @brief  The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_DMA_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 *//* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE */HAL_UART_Transmit_DMA(&huart1, (uint8_t *)aTxMessage, sizeof(aTxMessage));HAL_Delay(1000);/* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}

1.4常用函数

HAL_UART_Transmit(); 串口发送数据,使用超时管理机制
HAL_UART_Receive(); 串口接收数据,使用超时管理机制
HAL_UART_Transmit_IT(); 串口中断模式发送  
HAL_UART_Receive_IT(); 串口中断模式接收参数说明:
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart,
uint8_t *pData, uint16_t Size, uint32_t Timeout)
形参 1 :UART_HandleTypeDef 结构体类型指针变量
形参 2:指向要发送的数据地址
形参 3:要发送的数据大小,以字节为单位
形参 4:设置的超时时间,以ms单位
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart,
uint8_t *pData, uint16_t Size)
作用:以中断的方式接收指定字节的数据
形参 1 是 UART_HandleTypeDef 结构体类型指针变量
形参 2 是指向接收数据缓冲区
形参 3 是要接收的数据大小,以字节为单位
此函数执行完后将清除中断,需要再次调用以重新开启中断串口中断回调函数:
HAL_UART_IRQHandler(UART_HandleTypeDef *huart); //串口中断处理函数
HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart); //发送中断回调函数
HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart); //接收中断回调函数配合DMA:
HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)

http://www.dtcms.com/wzjs/48907.html

相关文章:

  • H5平台网站建设东莞seo建站推广费用
  • 网站建设美文正规职业技能培训机构
  • 销售产品网站有哪些企业网站建设案例
  • 建立网站服务的公司网站怎么做线上销售
  • 中国工商银行app下载电脑系统优化软件排行榜
  • 网站备案 新网seo网络排名优化
  • 公司简介100字范文长沙seo优化推广公司
  • 服务质量好的crm系统seo关键词排名优化推荐
  • 装饰网站建设公司江苏短视频seo搜索
  • web网站建设应遵循的原则seo外包资讯
  • 厦门建网站多少钱深圳网络推广团队
  • 俄语培训网站建设手机cpu性能增强软件
  • wordpress科技网站模板宁波seo行者seo09
  • 一级a做网站免费腾讯广告官网
  • 宜宾建功路桥建设有限公司网站子域名在线查询
  • 湘潭网站建设磐石网络百度小说风云榜首页
  • 免备案的网站产品运营推广方案
  • ftp上传网站之后怎么做代发关键词包收录
  • 网站改版的影响优化深圳seo
  • 单页网站上传教程视频最近三天的新闻大事小学生
  • 建设一个公司网站 需要钱吗廊坊seo快速排名
  • 诸暨市建设局行业管理网站ip营销的概念
  • 找事情做的网站google推广 的效果
  • 网站建设存在问题成都网站建设团队
  • 企业怎样做网站app拉新渠道
  • wordpress代码主题深圳seo优化培训
  • 自己做网站好做吗微信公众号营销
  • 网站建设服务器的选择方式包括谷歌浏览器网页版
  • 徐州网站优化推广企业营销策略
  • 高毅资产网站谁做的东莞网站制作十年乐云seo