西电微控个人项目——硬件演示


前言

基于STM32CubeIDE与STM32F411RE的硬件仿真
01


一、STM32CubeIDE的安装

    1. 与CubeMX安装方法一致,去官网下载即可
    1. 百度网盘下载 解压码:gzip

需要注册MyST账号,但是既然都下载过CubeMX,应该都有

二、芯片配置

1.配置UART

02

2.开启中断

03

3.开启DMA(接收不定长)

04
Ctrl+S自动生成代码以后进入下一步


三、代码

/* USER CODE BEGIN PV */
uint8_t receive[50];
int on = -1;
int off = -1;
/* USER CODE END PV */
/* USER CODE BEGIN 0 */
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size){
	if (huart == &huart2){
		on = (int)(receive[9]-'0');
		off = (int)(receive[10]-'0');
		on = on ? on : 3;
		off = off ? off : 3;
		on = on * 1000;
		off = off * 1000;


		HAL_UARTEx_ReceiveToIdle_DMA(&huart2, receive, sizeof(receive));
		__HAL_DMA_DISABLE_IT(&hdma_usart2_rx,DMA_IT_HT);
	}
}
/* USER CODE END 0 */

/* USER CODE BEGIN WHILE */
  while (1)
  {
	  HAL_UARTEx_ReceiveToIdle_DMA(&huart2, receive, sizeof(receive));
	  __HAL_DMA_DISABLE_IT(&hdma_usart2_rx,DMA_IT_HT);
	  if (on > 0 && off > 0){
		  HAL_UART_Transmit(&huart2, "on", 2, 100);
		  HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
		  HAL_Delay(on);
		  HAL_UART_Transmit(&huart2, "off", 2, 100);
		  HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
		  HAL_Delay(off);
	  }
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

总结

结束,发送格式:学号+空格+姓名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值