步骤1:软件和硬件要求
在硬件方面,您需要:
STM32F4发现板(或其他任何STM32板)
USB转TTL转换器
在软件方面:
STM32CubeMX
Keil uVision5
已安装串行库的Python
步骤2:STM32CubeMX配置
首先让我们了解我们想要做什么。我们希望通过USART从Python将数据传输到板上,并检查是否有正确的数据并切换LED。因此,我们需要启用USART和Led。
从“连接性”选项卡中启用USART2。
将模式更改为异步
波特率更改为9600 Bits/s
无奇偶校验的字长为8位
无奇偶校验位
从DMA设置中以特殊模式添加USART2_RX
从NVIC设置中启用USART2全局中断
然后生成代码:)
通过单击PD12启用LED
步骤3:Keil软件开发
#include
#include
在字符串操作和定义布尔变量时将需要这些库。
/* USER CODE BEGIN 2 */
HAL_UART_Receive_DMA(&huart2, (uint8_t *) data_buffer, 1);
/* USER CODE END 2 */
此处,UART
/* 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 could be implemented in the user file
*/
if(data_buffer[0] != ‘ ’){
data_full[index_] = data_buffer[0];
index_++;
}else{
index_ = 0;
finished = 1;
}
//HAL_UART_Transmit(&huart2, data_buffer, 1, 10);
}
/* USER CODE END 4 */
这是ISR,当我们得到一个字节的字符时,它被激活。所以。我们得到该字节并将其写入包含完整接收数据的data_full,直到得到‘ n’。当我们得到‘ n’时,我们使完成标志1并在while循环中:
while (1)
{
/* USER CODE END WHILE */
if(finished){
if(strcmp(data_full, cmp_) == 0){
HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12);
}
memset(data_full,‘’,strlen(data_full));
finished = 0;
}else{
__NOP ();
}
/* USER CODE BEGIN 3 */
}
如果完成标志为HIGH,我们将比较完整接收的数据和我们想要的数据的内容,如果它们是等于我们切换领导。之后,我们清除完成标志,等待新数据,并清除data_full数组,以免覆盖该数组。
步骤4:Python软件开发
因此,这里我们要在结尾处发送带有‘/n’的数字,因为Keil软件需要查看它才能知道结尾。
import serial
ser = serial.Serial(‘COM17’) #check that port on your device from Device Manager
ser.write(b‘24 ’)
您应该看到每次您发送“ 24 n”时,LED都会切换。如果您发送其他任何内容,它都不会影响它。
上一篇:如何利用stm32单片机进行超声波测距
下一篇:STM32单片机串口波特率的计算方法解析
推荐阅读最新更新时间:2026-03-12 10:34
- STEVAL-ILL035V1,使用带有集成升压控制器的 LED7708 多通道 LED 背光驱动器的演示板
- ST2S06B 双路同步整流带复位或抑制、0.5 A、1.5 MHz 可调降压开关稳压器的典型应用电路
- LT3957EUHE、5V 至 16V 输入、-12V 输出反相转换器的典型应用电路
- LT3475IFE-1 演示板、双路降压型 1.5A LED 驱动器
- 使用 NXP Semiconductors 的 BFU730F 的参考设计
- AD5347 并行接口、八路电压输出、10 位 DAC 的典型应用
- 使用 TC7662B 负电荷泵转换器的典型应用电路
- AKD4358,用于 AK4358 192kHz PCM 数据、用于 DVD 音频和 SACD 应用的 DSD 数据的评估板
- 具有输出电池短路保护功能的 ADA4432-1 SD 视频滤波放大器的典型应用电路
- 使用 Analog Devices 的 ADA4062-2ARMZ-RL7 的参考设计
- 14家工业智能企业入选《上海市智能机器人标杆企业与应用场景推荐目录》
- MTBF突破4万小时!这家工业级3D相机品牌产品稳定性获权威机构认可
- 本周机器人行业大事件TOP5
- G20周刊|埃斯顿与北自所达成战略合作、海康机器人发布光伏组件汇流带视觉检测解决方案
- 大声量 | 2023机器视觉技术与应用峰会议程新鲜出炉!
- 8051单片机以轮询方式实现串口通信(51接收数据后发送回PC端)
- 8051单片机串口接收字符并将其ASCII码(小于100)显示在数码管上
- 8051单片机实现可修改初值(并可命令启停)的单倒计时器
- 农田迎来“飞行军”,极飞为山东农业“武装”非凡实力
- 可显示或隐藏秒数的两不同周期倒计时器(基于8051)

STC8H全系列单片机应用手册
使用PIC单片机控制心电前端ADS1192的实现单导心电测量
Follow me第三季第4期任务
现代雷达系统的信号设计
BFR340T






京公网安备 11010802033920号