- 博客(27)
- 收藏
- 关注
原创 “江协科技OLED屏驱动“I2C通信HAL库版
该文件主要是一些字符图案的16进制,用来作为OLED显示的,里面我添加了一些自己使用的中文和图案的16进制数组,使用不需要修改,需要添加图案或者中文需要用软件取码。该文件是OLED_Data.c的数组的声明,新添加的数组需要在这里做个外部声明以便其他文件可以调用。该文件主要是一些宏定义,函数声明,一般不需要修改。
2025-11-25 14:59:44
145
原创 嵌入式单片机各种通信(UART/RS232/RS485/I2C/CAN/ SPI)
主设备向从设备发送8位数据后,从设备如果成功接收,则会向主设备回应一个应答信号(低电平),此时SDA由从设备操作,因为外接上拉电阻,所以默认状态下是高电平,所以应答信号是低电平;主设备 <------------------------8位数据-------------------- 从设备。有主从设备之分,主设备通过从设备的设备地址进行数据的收发;主设备主导通信,能主动读取从设备的数据,而从设备只能等待主机的读写操作,从设备不能自己独立操作总线。
2025-11-06 21:54:41
854
1
原创 新大陆 1+X传感网中级(基于CAN总线通信技术的工业生产环境监控系统)
②在CAN_Master_To_Gateway()函数中实现:根据以下表2.RS-485网络数据帧格式的终端节点,采集CAN总线上的终端节点传感器数据。①在Master_To_Gateway()函数中实现:将转换好的火焰传感器数据通过以下表2. RS-485网络数据帧格式协议中的网关节点,正确封装到MASTER_TX_BUF[]数组中,通过串口发送给物联网网关。”里的“CAN调试助手”工具进行CAN通信数据的抓包并截图保存至“图集.docx”中的8.png处。(1)实现火焰传感器数据的采集;
2025-10-19 21:56:30
897
原创 新大陆 1+X传感网中级(基于CAN总线通信技术和BasicRF通信技术的环境监控系统)
(注意:数据域应该按照实际采集的数据进行填写。(注意:数据域应该按照实际采集的数据进行填写。(注意:数据域应该按照实际采集的数据进行填写。文件夹中的串口调试助手打印火焰传感器数据并将截图保存至。的火焰传感器数据,按照高位在前低位在后正确封装赋值给。)将云平台上实时显示传感器数据信息的界面截图保存至。通信协议报文,将采集到的火焰传感器数据正确的填入。函数中实现:将转换好的火焰传感器数据通过以下表。网络数据帧格式协议中的网关节点举例,正确封装到。,将采集到的火焰传感器数据通过串口发送给。
2025-10-19 21:42:04
597
原创 新大陆 1+X传感网中级(实现基于RS-485总线通信技术和BasicRF无线通信技术的智能楼宇灯光监控系统)
②当系统工作模式在白天模式时,板子上LED1和LED2灯点亮,根据光照阈值判断,如果光照阈值低于20(阈值可根据实际情况自行设置),触发声音传感模块,则点亮指示灯模块,2秒后指示灯自动熄灭,如果光照阈值高于20(阈值可根据实际情况自行设置),无论如何触发声音传感模块,都无法点亮指示灯模块。①当系统工作在夜间模式时,板子上LED1和LED2灯熄灭,设置触发声音传感模块,则点亮指示灯模块,2秒后指示灯模块自动熄灭;按键按下(奇数次),模式切换为白天模式,控制。按键按下(偶数次),模式切换为夜间模式,控制。
2025-10-18 22:05:45
727
原创 新大陆 1+X传感网中级(基于RS-485总线通信技术实现矿井环境监测系统)
(3)以上操作成功并完成后,将USB转RS-232串口线连接计算机与ZigBee模块(黑板),并在Options的C/C++ Compiler中修改IAR工程的条件编译项“CC2530_DEBUG”,修改为“xCC2530_DEBUG”。(5)程序编译烧写成功后,打开M3主控模块配置工具,将从机的地址设置为01,并配置传感器类型为“火焰”,将配置完成的界面进行截图保存至“图集.docx”中的4.png处。(2)在“protocol.c”文件mb_unpack_frame()函数中实现读取输入寄存器;
2025-10-18 21:48:52
833
原创 新大陆 1+X传感网中级(基于RS-485总线通信技术实现园区环境监测系统)
(3)在“inputregister.c”文件ReadInputRegister()函数中,根据以下通信帧,从机读取空气质量数据请求帧,将空气质量数据根据响应帧格式进行数据的封装;(4)在“max485.c”文件RS4851_Send_Buffer()函数中,实现RS-485引脚电平置换,当设置为发送状态时,设置为高电平;(3)在“inputregister.c”文件ReadInputRegister()函数中,根据以下通信帧,从机读取空气质量数据请求帧,将空气质量数据根据响应帧格式进行数据的封装。
2025-10-18 21:25:47
1220
原创 重写HAL库的串口中断
1.到stm32f1xx_it.c屏蔽HAL库自动生成的串口中断函数,重新定义一个函数。3.串口重定向在usart.c进行重写。2.自定义函数到main.h进行声明。
2025-09-10 19:47:35
248
原创 基于STM32F103的多功能可编程手表-火禾实验室(HAL库版本)
想要画板子和把板子打出来的同志如果用我的代码记得把引脚改一下。复刻的成本打板加元器件差不多一百左右。OLED的驱动是江协的,MPU6050的驱动可以去复制火禾的,这两个代码我就不放上来了。引脚配置我的代码和火禾的不同,有需要可以按着下面的表格来配置。火禾实验室多功能可编程手表复刻-HAL版。1.STM32F103C8T6主控。9.Stlink下载器。8.公对公杜邦线诺干。
2025-09-09 16:51:33
303
原创 PID算法-平衡车(HAL库版)
闭环控制:指的是将目标值输入给控制器,控制器输出一个值(如PWM)直接赋给被控对象, 被控对象将实际值回馈给主控芯片,主控根据实际值与目标值的误差大小来调整输出 给被控对象的输出值,有反馈的控制叫做闭环控制,PID属于闭环控制的一种。1.比例项的输出取决于当前时刻的误差,与历史时刻无关,当前误差越大,输出的值越大,误差存在时,输出一个与误差成正比的值。3.Ki越大,稳态误差消除的越快,但系统的滞后性也随着增加。
2025-09-09 00:07:08
976
原创 五路红外模块寻迹小车(无PID简易开源HAL库版)
两路电机驱动模块:通过控制定时器的占空比来实现对轮子速度的控制,利用差速来实现拐弯。5路红外循迹模块:通过读取红外模块给的信号,来判断小车行驶的路线是否偏左或者偏右。3.5路红外循迹模块(读到白色 给高电平,读到黑色,给低电平)OLED模块:将占空比值显示出来,方便调参(可有可无)。五路红外模块寻迹小车(无PID简易开源HAL库版)占空比控制电机模块(函数名需要到.h文件下声明)4.STM32F103C8核心板。TB6612两路电机驱动模块。5.OLED屏幕(4针)1.小车底板、3个轮子。
2025-05-11 17:15:24
777
原创 蓝桥杯——十六届参赛体会
猜测未来17届的题目肯定是这种类似的,数学题+难理解;备战17届嵌入式的可以多往这个方向练习,加上基础的模块很熟练了,难度其实不大。如果能完成计算和看懂题目的话,这道题目感觉没那么难。ps:需要完整题目可以私信我。
2025-04-15 21:19:09
741
原创 蓝桥杯嵌入式——定时器PWM模式实现呼吸灯
通道3设置为PWM 分配系数为79 重装载值为1000-1。Pulse占空比设置为500(NVIC记得勾上)将PC8设置为定时器3通道3。
2025-03-23 21:32:43
336
原创 蓝桥杯嵌入式-I2C读写AT24C02
代码功能为,一个输入密码界面,一个修改密码界面,每次修改成功后写入24C02,复位或者掉电后密码值将会保存,cnt当每复位一次,cnt++由上图可以看出,PB6引脚接SCL(时钟线),PB7接SDA(数据线)初始电平为低,模式为开漏模式,配置上拉电阻,速度为最大。将PB6 7 配置为OUTPUT模式。AT24C02电路图。
2025-03-23 21:06:39
595
原创 蓝桥杯嵌入式—定时器频率&占空比
这样子PA6的频率为100HZ,PA7为200HZ;分配系数配置为79,通道1配置为上升沿,通道2配置为下降沿,NVIC勾上(定时器3同理)PS:测频率只需要配置通道一为上升沿,测占空比则需要配置通道二为下降沿。定时器16分频系数为8000-1,ARR为100-1。2.CCRx(捕获/比较寄存器值):相当于水杯的刻度。定时器2,3的通道1,2配置为输入捕获直接/间接模式。定时器17分配系数为4000-1,ARR为100-1。1.ARR(自动重装载值):相当于水杯的容量。3.CNT(计数器):相当于水滴。
2025-03-22 20:20:59
726
原创 蓝桥杯嵌入式-滴答定时器和通用定时器的使用
当每达到1ms时,系统就会进入滴答定时器的中断,用户可以在it.c文件夹下使用。T=(ARR+1) (PSC+1)/主时钟频率80MHz。在80MHz的时钟频率下。PS:记得把NVIC勾上。
2025-03-17 22:08:43
372
原创 蓝桥杯嵌入式-UART接收与发送
从它的电路图可以看出,G431的UART对应的引脚是PA10/9,所以在配置时需要将引脚选择为 USART模式,在MODE模式中选择Asynchronous(异步模式),打开中断。发送使用函数:HAL_UART_Transmit();参数:(&huart1,tx_buff,strlen(tx_buff),20);接收函数HAL_UART_Receive_IT();参数:(&huart1,&rx_data,1);ps:rx_data是用来接收返回值的地址,uint8_t类型的整数型,这个函数是用来打开中断的。
2025-03-16 21:09:20
258
原创 蓝桥杯嵌入式-定时器实现秒闪灯
将定时器2的PSC(分频)设置为80,ARR(重装载值)设置为10000;这样就实现按下按键LED以0.1秒闪烁,5秒后停止的操作。时间T=(ARR+1)(PSC+1)/80MHz;生成代码后,初始化中开启定时器中断。定时器代码模块完成后开始写秒闪灯。选中NVIC,打开定时器中断。由上设置定时时间为10ms。重写定时器中断回调函数。通过按键3来触发秒闪灯。
2025-03-15 19:58:23
226
原创 蓝桥杯嵌入式-LCD模块与ADC模块
由图所示,G431开发板上的R37连接PB15引脚(ADC2),R38连接PB12引脚(ADC1),使用LCD前需要将(PA8)(PB5,8,9)(PC0~15)配置为OUTPUT模式。A模拟量(连续的值0~3.3V),D数字量(离散值 0|1)如果要使采样的值精准一下,可以在初始化的时候加入ADC校准函数。ps:lcd_buff为char类型的字符数组。打开Kile5,将LCD.C加入工程目录。在代码中可以封装两个获取ADC的函数。引入LCD驱动的.c和.h文件。在主函数中对获取到的值进行处理。
2025-03-13 23:16:44
289
原创 蓝桥杯嵌入式-LED与KEY模块
LED由上拉电阻上拉置高电平,所以LED的引脚处于低电平时导通LED点亮,高电平时截止,LED熄灭;对应引脚为PC8-PC15引脚。(配置为OUTPUT模式;初始电平为高电平熄灭状态)PD2为控制锁存器,高电平时将PC8-PC15的端口状态送至1Q-8Q;低电平时端口状态锁定。按键分为B1-B4,对应引脚分别为PB0、PB1、PB2、PA0。按键按下对应引脚为低电平,按键抬起时对应引脚为高电平;PS:因为LED引脚与LCD引脚复用了,所以用到锁存器避免混乱。(配置为OUTPUT模式;初始电平为低电平状态)
2025-03-08 23:35:10
394
原创 第十三届 蓝桥杯(电子类)嵌入式设计与开发科目
ps:SysTick代码内的变量是外部的,定义要使用extern关键字。串口功能、LED模块及初始化。
2025-03-04 21:41:55
236
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅