RFID防伪设计(物联网工程课程设计)DAY3---串口调试

第三天串口调试

虽然任务模块不涉及串口调试,但是
串口调试还是对我们debug很有用
这里还是顺便做一下串口

stmcubemx

首先还是查看板子的原理图
可以看到串口分别是PA9、PA10
在这里插入图片描述
如果想用别的 usart 要自己更改跳帽的连接
随后在cubemx中选择PA9 PA10
两个引脚都先选择usart功能,防止引脚复用出现问题
现在两个引脚应该是黄色
然后再选择usart1
两个引脚变成绿色
在这里插入图片描述
选择模式异步通信
波特率9600
校验位8 停止位1
在这里插入图片描述
然后生成代码,硬件配置就完成了
当人你也可以把串口中断选上

keil5代码

串口调试就选择正常的非中断模式进行(阻塞模式)
函数原型是

HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size);

带 IT 的是中断方式

函数解析
HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
参数分别是串口,传送的数据,传送数据的大小,超时时间
其中超时时间是可以任意设置的,你可以设置成最大值
程序怕出现问题才会出现这个超时时间
如果选用中断方式则不会出现这个问题

首先添加一个头文件

#include "stdio.h"

然后设置一个全局变量

uint8_t send_date[64] = {0};

keil5中一定要注意定义变量的时候对变量赋初值
否则会引发不必要的麻烦

最后是main函数中的内容

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

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		
		//串口调试
		sprintf((char *)send_date,"test date\n");
		HAL_UART_Transmit(&huart1, send_date, sizeof(send_date), 100);
		//HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
		HAL_Delay(500);
		
		
    /* USER CODE END WHILE */

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

sprintf函数是在stdio.h中定义的,属于赋值函数,同时可以将变量赋值进去
很方便
个人不太喜欢修改printf函数,感觉比较麻烦,还要修改底层的重定义

效果

打开串口调试助手设置相应的波特率
在这里插入图片描述
在这里插入图片描述
灯亮是因为day2中GPIO的实验
没有把那三个RGB通道关闭,导致的
你也可以在程序中关掉就不会亮了

给孩子点个赞吧

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值