- 博客(10)
- 收藏
- 关注
原创 淘晶驰等串口屏通讯单片机ASCII数字转换为uint32数值
parse_usart_w_data(const uint8_t *data_buf, uint16_t data_len, uint32_t *num),data_buf为串口收到的数据存储到数组中,data_len数据长度,num为转换后得到的结果。使用淘晶驰等串口屏通讯单片机时,使用ASCII编码格式输出到单片机后需要转换为无符号数字,制作了个函数用于实现。使用示例,ascii_data1为模拟收到的串口数据,result转换后的结果输出:12345。
2025-12-19 10:41:30
422
原创 HC32L130单片机PID电机驱动
PID值调试使用VOFA程序,单片机串口输出值,VOFA程序查看波形慢慢调试PID值。速度环PID反馈为脉冲计数,输入值为位置环的输出。位置环PID反馈ADC获取。位置环和速度环的PID值。
2025-12-19 09:42:05
151
原创 C语言函数实现提取字节中的某一位,写入某一位到字节中
写入某一位到字节中,num为要写入的字节,position为要写入的第n位,value为要写入位的值(0或1)提取字节中的某一位,num为要提取的字节,n为要提取字节中的第n位,返回置位第n位的值。
2025-12-18 10:55:23
100
原创 C语言等比映射函数
map(int32_t x, int32_t in_min, int32_t in_max, int32_t out_min, int32_t out_max)中。x为想转化的输入值,in_min为输入值的下限,in_max为输入值的上限。out_min为想转化的输出值的下限,out_max为想转化的输出值的上限。
2025-12-18 09:35:10
249
原创 stm32驱动MLX90614非接触温度测量传感器测温探头
MLX90614非接触温度测量传感器测温探头,常用来制作额温测试。驱动保存为 "MLX90614_Driver.c",再新建“MLX90614_Driver.h”并保存。在mian.c中声明引用#include "MLX90614_Driver.h",并加入。
2025-12-17 14:21:31
400
原创 stm32f103c8t6使用STM32CubeMX配置IAP
单片机IAP(In Application Programming,在线应用编程)是一种允许用户程序在运行过程中直接对Flash存储器进行读写操作的功能,主要用于产品发布后的固件升级。简单来说,就是设备在正常工作状态下,无需借助外部编程工具或拆除硬件,直接通过自身的软件程序完成系统升级。然后接着编写单片机内运行的程序APP,使用上面的Bootloader程序升级写入,并且跳转运行。启动单片机,写入APP程序,串口提示请在10s内输入升级命令。注意写入时需要更改代码写入大小,与代码里宏定义的大小一样。
2025-12-17 10:59:53
216
原创 STM32 CUBEMX生成CAN,双机互联
如果需要本机调试(自收自发)掩码全改为0x0000,并且hcan.Init.Mode =CAN_MODE_LOOPBACK改为回环模式。CAN的波特率=36/分频系数/(BS1+BS2+同步时间段)=36/9/8。STM32F103c8t6的APB1时钟频率为36MHZ,使用STM32 CUBEMX生成CAN,设置SYS。掩码都统一改为0x7ff。
2025-12-15 16:27:45
367
原创 STM32 CUBEMX生成程序制作任意串口使用printf函数
重定向HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart),串口1接收完后再次启用中断接收HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer,6);在main中循环发送串口1收到的数据,我这里分为2段从串口2发送出去。USART3没配置。由于我需要在串口1收到数据后,发送到串口2,所有需要串口1打开中断。
2025-04-10 14:51:52
1215
1
原创 STM32串口透传STM32CubeMX配置
在MX_USART1_UART_Init(void)中加入语句HAL_UART_Receive_IT(&huart1,USART1_RX_BUF,1);在回调函数HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)中加入转发语句。配置STM32两个串口实现透传。使用STM32CubeMX配置。配置两个串口USART1和USART2。改写usart.c加入代码。完整usart.c代码。
2024-12-03 16:41:09
902
原创 STM32H743VIT6使用STM32CubeMX移植freeModbusRTU(从站)
freeModbus包可进入后方链接下载(1、MoubusRTU移植到stm32平台通信是通过串口进行通信,主要是需要串口进行收发,所以发送中断时必须的,在波特率设置问题上是和定时器相关联,在mbrtu.c文件的eMBRTUInit里具体说明了串口波特率和定时器设置的关系从上面代码的注释中可以看出,当波特率大于19200时,超时时间固定位为1750us,当波特率小于19200时,超时时间为3.5个字符时间,具体计算公式在代码注释里已经有了,这里我就不多赘述。
2024-12-02 16:43:35
2637
7
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅