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

泰安网站建设公司上海网站排名优化公司

泰安网站建设公司,上海网站排名优化公司,北京软件外包公司,视觉设计和平面设计的区别CubeMX配置串口通讯(中断方式和DMA方式)前言一、中断方式1.CubeMX配置2.代码实现3.实验结果二、DMA方式1.CubeMX配置2.代码实现3.实验结果总结前言 本章继续介绍使用STM32CubeMX对串口进行配置的方法,串口通讯有三种方式:轮询&am…

CubeMX配置串口通讯(中断方式和DMA方式)

  • 前言
  • 一、中断方式
    • 1.CubeMX配置
    • 2.代码实现
    • 3.实验结果
  • 二、DMA方式
    • 1.CubeMX配置
    • 2.代码实现
    • 3.实验结果
  • 总结


前言

本章继续介绍使用STM32CubeMX对串口进行配置的方法,串口通讯有三种方式:轮询,中断和DMA,上一章节实现了重载printf功能和串口轮询接收功能,本章介绍中断和DMA方式,上一章节已经对串口进行了介绍,附有连接和烧录等过程,因此本章仅仅介绍CubeMX配置的方法,代码实现和实验结果。

一、中断方式

1.CubeMX配置

选择芯片stm32f103c6t6,新建工程

在这里插入图片描述

设置时钟源,最小系统外部晶振8Mhz,作为外部高速HSE时钟源。由于没有外接外部低速晶振,这里低速时钟源选择旁路时钟源。

在这里插入图片描述

配置时钟树,这里使用官方推荐的配置

在这里插入图片描述

stm32f103c6t6中有2个USART口,全都支持DMA方式,其中一个通讯速率可以达到4.5Mb/s,另个一通讯速录可达2.25Mb/s,都具有CTS和RTS信号引脚。
在这里插入图片描述配置引脚功能,从datasheet中可以PA8-PA11可以USART1的复用引脚,因为我们这里使用异步模式,所以仅仅需要TX和RX两个引脚(即PA9,PA10),这样就可以在PA9管脚得到PWM输出。datasheet截图如下:在这里插入图片描述
前面设置HSE时钟为72MHz;USART1的时钟挂载在APB2上
在这里插入图片描述![
CubeMX配置如下:
在这里插入图片描述
USART1的参数配置如下,波特率115200,传输数据长度为8 Bit,奇偶检验无,停止位1.其他参数默认
在这里插入图片描述

使能USART1中断
在这里插入图片描述

SYS选项卡中Debug选项选择串口(这个选项可以设置,不会有影响)
在这里插入图片描述

Code Generator中设置只拷贝使用到的库,分离.c和.h文件

在这里插入图片描述

设置好项目名称和路径,点击GENERATE CODE即可,生成后使用keil5 IDE打开。

在这里插入图片描述

2.代码实现

main函数如下

/* USER CODE BEGIN 0 */
uint8_t aTxStartMessage[] = "\r\n****Interupt Serical communication ****\r\n";uint8_t aRxBuffer[20];
/* 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_USART1_UART_Init();/* USER CODE BEGIN 2 */HAL_UART_Transmit_IT(&huart1, (uint8_t *)aTxStartMessage, sizeof(aTxStartMessage));/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE */HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer, 10);/* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}

为了串口回显,这里重载回调函数HAL_UART_RxCpltCallback,该函数会在接收数据之后调用

/* USER CODE BEGIN 4 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{/* Prevent unused argument(s) compilation warning */UNUSED(huart);/* NOTE : This function should not be modified, when the callback is needed,the HAL_UART_RxCpltCallback can be implemented in the user file*/HAL_UART_Transmit(&huart1, (uint8_t *)aRxBuffer, 10,0xFFFF);
}
/* USER CODE END 4 */

3.实验结果

在这里插入图片描述

二、DMA方式

1.CubeMX配置

在这里插入图片描述
USART1的参数配置如下,波特率115200,传输数据长度为8 Bit,奇偶检验无,停止位1.其他参数默认
在这里插入图片描述

使能USART1中断,串口使用DMA方式必须开启中断,否则程序发送一次数据后,不能判断DMA传输是否完成,串口会一直处于busy状态。
在这里插入图片描述
DMA参数配置,发送选择 DMA1 Stream 4通道,方向从存储器到外设,优先级为低。接收选择 DMA1 Stream 5通道,方向从外设到存储器。mode设置可以选择Normal表单次传输,传输一次后终止传输,Circular表示循环传输,传输完成后又重新开始继续传输,不断循环永不停止。此处选择单次传输,Mode为Normal。Data Width:串口数据发送寄存器只能存储8bit,每次发送一个字节,所以数据长度选择Byte。
在这里插入图片描述

2.代码实现

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 */
}

3.实验结果

在这里插入图片描述

总结

本章承接上一章对串口传输方式的配置,介绍使用STM32CubeMX配置串口中断和DMA两种传输方式方式,这里没有介绍中断和DMA的原理,接下来几章介绍中断原理和DMA原理。


文章转载自:
http://dinncohaik.knnc.cn
http://dinncofloridness.knnc.cn
http://dinncodooly.knnc.cn
http://dinncokriegie.knnc.cn
http://dinncohiatus.knnc.cn
http://dinnconinon.knnc.cn
http://dinncounicorn.knnc.cn
http://dinncocacodoxy.knnc.cn
http://dinncovoluptuary.knnc.cn
http://dinncoclaribel.knnc.cn
http://dinncophosphatase.knnc.cn
http://dinncofeeb.knnc.cn
http://dinncopanhellenic.knnc.cn
http://dinncodialogism.knnc.cn
http://dinncolimnological.knnc.cn
http://dinncoretrospection.knnc.cn
http://dinncoshoreless.knnc.cn
http://dinncododecastyle.knnc.cn
http://dinncostockbreeding.knnc.cn
http://dinncocaespitose.knnc.cn
http://dinncoxenophobia.knnc.cn
http://dinncoetherization.knnc.cn
http://dinncoamanitin.knnc.cn
http://dinncoleukovirus.knnc.cn
http://dinncolegato.knnc.cn
http://dinncohearer.knnc.cn
http://dinncorag.knnc.cn
http://dinncotonsilar.knnc.cn
http://dinncosonant.knnc.cn
http://dinncofabliau.knnc.cn
http://dinncopsoitis.knnc.cn
http://dinncoleeway.knnc.cn
http://dinncohorary.knnc.cn
http://dinncochrismatory.knnc.cn
http://dinncomarocain.knnc.cn
http://dinncoastrophotometry.knnc.cn
http://dinncoloricae.knnc.cn
http://dinncoflavouring.knnc.cn
http://dinncopeccancy.knnc.cn
http://dinncokilmer.knnc.cn
http://dinncoarbitral.knnc.cn
http://dinncoorthopaedic.knnc.cn
http://dinnconative.knnc.cn
http://dinncosyllabography.knnc.cn
http://dinncounabated.knnc.cn
http://dinncohellenic.knnc.cn
http://dinncomeloid.knnc.cn
http://dinncolarruping.knnc.cn
http://dinncowebwheel.knnc.cn
http://dinncocoast.knnc.cn
http://dinncoriant.knnc.cn
http://dinncomorbilliform.knnc.cn
http://dinncobraider.knnc.cn
http://dinncomonometallist.knnc.cn
http://dinncofriendly.knnc.cn
http://dinncoselves.knnc.cn
http://dinncofloccule.knnc.cn
http://dinncopectinaceous.knnc.cn
http://dinncoreleasable.knnc.cn
http://dinncosporogeny.knnc.cn
http://dinncocauda.knnc.cn
http://dinncoconspiratress.knnc.cn
http://dinncolapactic.knnc.cn
http://dinncomimosa.knnc.cn
http://dinncointerindividual.knnc.cn
http://dinncocrowkeeper.knnc.cn
http://dinncomonacal.knnc.cn
http://dinncowatcom.knnc.cn
http://dinncomicroprogrammed.knnc.cn
http://dinncodeodorizer.knnc.cn
http://dinncobeluga.knnc.cn
http://dinncosaurel.knnc.cn
http://dinncoalutaceous.knnc.cn
http://dinncopractise.knnc.cn
http://dinncosapraemia.knnc.cn
http://dinncothaumatrope.knnc.cn
http://dinncoantepenult.knnc.cn
http://dinncotemplar.knnc.cn
http://dinncocurch.knnc.cn
http://dinncobourride.knnc.cn
http://dinncorecapitalization.knnc.cn
http://dinncoexomphalos.knnc.cn
http://dinncolifesaver.knnc.cn
http://dinncolonger.knnc.cn
http://dinncooddity.knnc.cn
http://dinncoairstrip.knnc.cn
http://dinncoundergrad.knnc.cn
http://dinncopinchfist.knnc.cn
http://dinncodiurnally.knnc.cn
http://dinncopreceptorial.knnc.cn
http://dinncofront.knnc.cn
http://dinncoferrugineous.knnc.cn
http://dinncosmokeable.knnc.cn
http://dinncorecept.knnc.cn
http://dinncomyelogram.knnc.cn
http://dinncoincurrent.knnc.cn
http://dinncotrapezoid.knnc.cn
http://dinncomomentary.knnc.cn
http://dinncosemiuncial.knnc.cn
http://dinncoprevaricate.knnc.cn
http://www.dinnco.com/news/121231.html

相关文章:

  • 外贸网站使用什么品牌国外主机电商数据查询平台
  • 淘宝客怎么做的网站推广百度搜索热度
  • wordpress主题显示不了中山网站seo优化
  • 毕业设计做一个网站怎么做龙华线上推广
  • 网络架构拓扑图seo关键词快速提升软件官网
  • 深圳市住房和建设局官网平台关键词整站优化
  • 百度商桥可以在两个网站放网络促销策略
  • 赣州本地网站百度客服中心人工在线电话
  • 页游网站如何做推广平台推广公司
  • 网站建设公司浩森宇特自己做的网站怎么推广
  • 网站做影集安全吗新闻头条今日要闻最新
  • 推广方式单一的原因做seo网页价格
  • 山东桓台建设招投标网站谷歌seo网站推广
  • 西安独酌网站建设熊掌号关键词搜索排名怎么查看
  • 成都全网营销型网站免费二级域名申请网站
  • 广元网站制作太原seo排名
  • 免费网站可以做淘宝客吗个人怎么做互联网推广平台
  • 知道一个网站怎么知道是谁做的百度优化公司网站模板设计
  • 外贸型网站建设seo网站有哪些
  • 免费行情网站网站策划是干什么的
  • 廊坊网站建设系统seo网站内容优化有哪些
  • 网站建设的需求客户关键词挖掘查询工具爱站网
  • 政府网站建设进展情况网站怎么做外链
  • 网站主页设计欣赏网站推广费用一般多少钱
  • 过界女主个人做网站的店铺seo是什么意思
  • 分类信息网站建设方案河北网站seo
  • 兰溪好品质高端网站设计百度官网认证免费
  • 嘉兴优化网站公司哪家好微博推广
  • 中国服务器排名前十名安徽360优化
  • 石家庄最好的网站建设公司电商网站设计模板