STM32中断与DMA通信编程

目录

一、中断模式编程,高电平亮灯、低电平灭灯。

 1.stm32cubemx设置

2.keil5设置

3. 实验结果

二、串口DMA方式

1.stm32cubemx设置

 2.使用kile5

3.效果

 三、参考文献


一、中断模式编程,高电平亮灯、低电平灭灯。

 1.stm32cubemx设置

芯片选择,我用的是stm32F103c8

RCC的设置

 

  时钟设置,选择pllxlk和hse 并且*pllmul选择X9

 

 

SYS设置

 关于A2,B0的设置

 

NVIc的设置

 

 IDE选择MDK-ARM,后面选择V5,不要忘记设置实验名称和路径 

按照我的图片进行设置

2.keil5设置

在main函数中写下

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){
	GPIO_PinState b0_pin = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0);  // 读取b0的状态
	switch (GPIO_Pin){
		case GPIO_PIN_0:
			HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, b0_pin);  // 将a2写入与b0相同的电位
			break;
	}
	
}

3. 实验结果

二、串口DMA方式

1.stm32cubemx设置

芯片选择,我用的是stm32F103c8

 RCC这里设置成这样

USART1这里设置

然后勾选

 

 DMA设置

 时钟设置,选择pllxlk和hse 并且*pllmul选择X9

 

IDE选择MDK-ARM,后面选择V5,不要忘记设置实验名称和路径 

按照我的图片进行设置

 2.使用kile5

找到工程文件

加入下面文件,位置要找正确


 /* USER CODE BEGIN Init */
	uint8_t Senbuff[] = "\r\n**** Serial Output Message by DMA ***\r\n   UART DMA Test \r\n   hello world!";  
  /* USER CODE END Init */


while (1)
  {
    /* USER CODE END WHILE */
		HAL_UART_Transmit_DMA(&huart1, (uint8_t *)Senbuff, sizeof(Senbuff));
	        HAL_Delay(1000);
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

3.效果

 三、参考文献

(22条消息) STM32中断与DMA通信编程_cxy1999120的博客-CSDN博客

(22条消息) STM32之中断控制LED灯_Baker的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值