-
新手的小小疑问
目前在试着做一个传感器信号采集项目,应该算是比较简单的,但是在打板后,发现采集到的波形非常的杂乱,用示波器测量也是很多杂波,后面发现是开关电源的问题,准备换掉开关电源,使用线性电源,但是现在遇到的第一个问题就是线性电源电路应该怎么设计呢?我需要把24V电压转换成5V电压,电流大小期望是在1A左右,请问大佬们可以给我一点建议吗?需要分几级降压会比较合适呢?
2026-04-27 17 -
【话题】写程序时为什么简单复杂化?
本帖最后由wuliangu于2026-3-1423:15编辑在写编程程序时,大多数代码为什么将简单的赋值搞得很复杂?明明可以在一个文件中直接赋值的,为什么偏要定义很多个参数传来传去,一层嵌一层?这样让人查看代码时会很吃力应要求补上直观点的图片如下:如查想知道HAL_GetSysClockFreq()这个的值时,我需要下查3层才能知道具体的值。这样的处理方式会不会使程序占用资源填加?会不会影响程序效率?
2026-03-13 6 -
赛元SC92F8463B的SSI中使用UART1与其他芯片通信问题
代码如下,程序没有报错,想实现的目的是,通过UART1发送A55A00H给另外的芯片,发送成功会有声音响起,但是没有反应,烦请路过的大佬帮忙看看,不胜感激!#include"Function_Init.H"#include"stdio.H"//选择三合一模式:#defineUart10#defineTWI1#defineSPI2#defineSSI_ModeUart1voidUart1_Init(uintFreq,unsignedlongintbaud);voidUART1_SendByte(unsignedchardat);voidDelay_ms(unsignedintms);bitUart1SendFlag=0;//Uart发送中断标志位bitUart1ReceiveFlag=0;//Uart接收中断标志位//主函数voidmain(void){//初始化UART1Uart1_Init(20,460800);//延时确保硬件稳定Delay_ms(100);//发送控制指令A55A00播放第一首歌曲UART1_SendByte(0x00);//唤醒信号Delay_ms(100);UART1_SendByte(0xA5);Delay_ms(100);UART1_SendByte(0x5A);Delay_ms(100);UART1_SendByte(0x00);Delay_ms(100);while(1){//主循环中可以添加其他功能}}voidUart1_Init(uintFreq,unsignedlongintbaud){P2CON&=0xFC;//TX/RX设置为输入带上拉P2PH|=0x03;OTCON|=0xC0;//串行接口SSI选择Uart1通信SSCON0=0x50;//设置通信方式为模式一,允许接收SSCON1=Freq*1000000/baud;//波特率低位控制SSCON2=(Freq*1000000/baud)>>8;//波特率高位控制IE1|=0x01;//开启SSI中断EA=1;TMCON=0X07;//------111;Timer0、Tiemr1和Tiemr2选择时钟FsysTMOD|=0x20;//00100000;Timer1设置工作方式2TL1=0xFC;//溢出时间:时钟为Fsys,则240*(1/Fsys)=20us;TH1=0xFC;TR1=0;ET1=1;//定时器1允许TR1=1;//打开定时器1}voidUart1_Int()interrupt7//Uart1中断函数{if(SSCON0&0x02)//发送标志位判断{SSCON0&=0xFD;Uart1SendFlag=1;}if((SSCON0&0x01))//接收标志位判断{SSCON0&=0xFE;Uart1ReceiveFlag=1;}}voidUART1_SendByte(unsignedchardat){TB8=0;//第9位数据设为0(通常用于奇偶校验,这里不用)SBUF=dat;//将数据放入发送缓冲区while(!TI);//等待发送完成TI=0;//清除发送中断标志}//简单延
2025-06-19 3 -
APM32F103VC串口通信问题
本帖最后由thinkdream于2025-5-1410:15编辑写个pelco-d的处理程序从USART2收数据判断执行,并通过USART1再输出。程序如下:复制voidUSART2_Isr(void){uint8_treceivedByte;//检查是否接收到数据if(USART_ReadIntFlag(USART2,USART_INT_RXBNE)){receivedByte=(uint8_t)USART_RxData(USART2);//读取接收到的数据,低8位USART_TxData(USART1,receivedByte);//将接收到的数据发送到USART1//存储数据到缓冲区if(pelcoIndex2<PELCO_D_FRAME_SIZE){pelcoBuffer2[pelcoIndex2++]=receivedByte;//检查是否接收到完整帧if(pelcoIndex2==PELCO_D_FRAME_SIZE){pelcoIndex2=0;//重置接收索引//调用PELCO-D数据帧处理函数parse_pelcod_command(pelcoBuffer2);}}USART_ClearIntFlag(USART2,USART_INT_RXBNE);}}实际发送数据(HEX):ff0100140f0f13USART2实际收到(断点获取):ff0100281f1f27部分数据向左移动一位USART1实际推出:ffc1c0d4cfcfc3部分数据高两位变为1是什么问题?如何解决
2025-05-14 7 -
基于STM32烟雾报警不能发送短信问题
问题为做了一个stm32烟雾短信报警,用的sim900a模块,已在电脑调试功能正常,连接stm32后模块指示灯都正常,但报警不能给发送目标手机号短信。
2025-05-12 6 -
ESP32S3R8N8 开发板如何不用usbc 充电,外接锂电池供电电源?
我需要开发一个东西,我希望烧录完程序后,单片机直接外接锂电池供电,这样就可以到处带,有接8个左右压力传感器,需要供电够持久。
2025-02-17 7 -
毕设遇到的的小问题
最近在做的毕设,用的是stm32f103c8t6的最小系统板。前面开发过程一切正常,但最近调试的时候电脑突然弹了个usb设备错误的消息提醒。具体是啥也记不清了,之后单片机就读不到数据了(dth11,esp8266wifi模块,rc522射频模块),后来单独连按键led啥的io引脚都没问题,开发板也换过了。wifi模块单独连电脑用串口调试助手发AT指令也有正常回复。供电全用的stlink接到最小系统板上的供电引脚,会不会是stlink供电不稳导致的(偶尔上电后开发板电源灯很暗,也不能正常烧录程序,重新拔插一下就好了),手头没有万用表之类的测试工具。准备买个单独的面包板电源试试,希望有大佬能指个明路
2025-01-10 5 -
stm32f030的PC13
stm32f030的PC13引脚用标准库函数定义为输入脚使用,定义为输入上拉,引脚直接连BL0939的第10脚的漏电警告输出,CPU读取没有问题;但是用CUBEMX的HAL库编程,也没有启用RTC选项设置的情况下,BL0939的10引脚一直被PC13拉低,无法读取到0939的高电平。如果用标准库编程文件烧写后,再次烧写HAL库文件编写的代码引脚的电平就正常,但是板子断电重启后就不行,0939的10脚电平还是一直无法为高电平,貌似被PC13一直拉低了。
2024-12-18 1 -
9脚6位数码管如何驱动
本帖最后由tyw于2024-9-214:49编辑9脚6位数码管如何驱动,前三位显示电流,后三位显示电压,不知道如何写段码
2024-09-02 8 -
有没有用过小华半导体芯片的小伙请教一下?
本帖最后由申小林一号于2024-6-2809:56编辑最近想做一些东西,成本相对来说有一点敏感,我们打算用100脚的M3的或者M33的芯片都行,但是不知道小华半导体的稳定性怎么样,有没有用小华半导体做过试验的呢?比如高低温试验和EMC实验。
2024-06-28 1 -
请教4G通讯(模块为EC20)如何降低掉线率?
本帖最后由Wxy8030于2024-4-1110:28编辑电信卡,TCP长连接方式、心跳包为40S一次,实际应用中某些信号稍微不好的点掉线率高得离谱(能高到每小时掉一次),为降低掉线率试过将心跳包提升到8S一次、整体有效果但某不固定时段还是很高,有做过这些的兄弟指点一下么?目前已得出的几点结论:1、优化信号确实是可行的,但限制于实际安装条件(在电柜里)优化空间有限;2、在办公室(某软件园区)测试时、信号不好(拆掉天线)却依旧能保持极低掉线率,在现场信号略好却也不行;3、目标是平均一天掉线不超过一次;
2024-04-11 12 -
单片机如何和CH340出来的ud+ ud-通信
如题,CH340出来的USB信号如何通过单片机读取?或者有没有芯片可以把CH340出来的USB信号转成其它接口信号。
2024-04-10 11

问答