-
使用的stc8g的单片机,做温控,没反应,不知道啥原因
#include#include#include"math.h"///**********************************************************************************************////**********************************************************************************************///“程序开发调试设置项”#defineDY_DELAY10//设置每一个点显示的时间长度(1~20)floatVCC=3.3;//设置基准电压floatRp=100000.0;//设置上拉电阻floatBx=3950.0;//设置热敏电阻B值floatRt;//热敏电阻的实际阻值floatTk2=273.15+25.0;floatKa=273.15;floatvol;//设置测量电压dataunsignedchartemp;//实际温度dataunsignedchartemp_set=0;//设置温度dataunsignedchartemp_set1=150;//设置温度2dataunsignedchartemp_set2=0;//设置温度2floatDTADC;/**********************************************************************************************//**********************************************************************************************/sbitDIG1=P5^5;sbitDIG2=P1^2;sbitSEG_A=P3^7;sbitSEG_B=P3^2;sbitSEG_C=P3^3;sbitSEG_D=P3^5;sbitSEG_E=P3^4;sbitSEG_F=P3^6;sbitSEG_G=P1^1;sbitBUTTON1=P1^6;sbitBUTTON2=P1^5;sbitBUTTON3=P1^4;sbitRESET=P5^4;sbitRELAY=P1^3;/*DefineADCoperationconstforADC_CONTR*/#defineADC_POWER0x80//ADC电源控制位#defineADC_FLAG0x20//ADC完成标志位#defineADC_START0x40//ADC启动控制位#defineADC_SPEEDLL0x00//ADC速度选择bitflag=0;typedefunsignedcharBYTE;dataunsignedcharDY_PWM;//显示亮度unsignedcharcodedisdata[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90//数码管段码表(0~9)};/*********************************************************************************************/voiddelay(unsignedinta){//用于点扫描的延时unsignedinti;while(--a!=0){for(i=0;i<DY_DELAY;i++);}}/********************
2024-08-28 6 -
hc32f460 can导致单片机复位
can使能后发送数据,如果can总线上没有其他节点接收数据,单片机直接重启。接上接收设备后,单片机正常工作。can配置代码如下//CANConfigstaticvoidApp_CANCfg(void){stc_can_init_tstcCanInit;/*************************ConfigureCAN1***************************/stc_can_filter_config_tastcFilter1[1U]={{0x1UL,0x0000UL,CAN_ID_STD},};/*InitializesCAN.*/(void)CAN_StructInit(&stcCanInit);stcCanInit.stcBitCfg.u32Prescaler=12U;stcCanInit.stcBitCfg.u32TimeSeg1=5U;stcCanInit.stcBitCfg.u32TimeSeg2=3;stcCanInit.stcBitCfg.u32SJW=3;stcCanInit.pstcFilter=astcFilter1;stcCanInit.u16FilterSelect=CAN_FILTER1;stcCanInit.u8WorkMode=CAN_WORK_MD_NORMAL;//CAN_WORK_MD_ELB;stcCanInit.u8PTBSingleShotTx=CAN_PTB_SINGLESHOT_TX_ENABLE;stcCanInit.u8STBSingleShotTx=CAN_STB_SINGLESHOT_TX_ENABLE;stcCanInit.u8STBPrioMode=CAN_STB_PRIO_MD_DISABLE;stcCanInit.u8RxWarnLimit=10U;stcCanInit.u8ErrorWarnLimit=15U;stcCanInit.u8RxAllFrame=CAN_RX_ALL_FRAME_DISABLE;stcCanInit.u8RxOvfMode=CAN_RX_OVF_DISCARD_NEW;stcCanInit.u8SelfAck=CAN_SELF_ACK_DISABLE;/*EnableperipheralclockofCAN.*/FCG_Fcg1PeriphClockCmd(FCG1_PERIPH_CAN,ENABLE);(void)CAN_Init(CM_CAN,&stcCanInit);CAN_ExitLocalReset(CM_CAN);/*Enabletheinterrupts,thestatusflagscanberead.*/CAN_IntCmd(CM_CAN,CAN_INT_ALL,DISABLE);CAN_IntCmd(CM_CAN,CAN_INT_ERR_INT|CAN_INT_RX_BUF_WARN|CAN_INT_RX|CAN_INT_BUS_ERR,ENABLE);}
2024-08-27 13 -
PIC16F1516/7/8/9单片机的开发例程
哪里可以下载到关于PIC16F1516/7/8/9芯片的相关开发例程?
2024-08-14 3 -
大分辨率低端单片机彩屏的显示刷新策略通常是怎么样的?
像stm32L431这些,ram也不过64K,而一个320*240*RGB565的屏幕一屏数据就有320*240*2=153600bytes,通常是怎么处理的?手上的项目,用的还是spi接口,静态显示按需刷新,卡的要死。。。。
2023-12-14 5 -
电路疑惑
本帖最后由MissFortune于2023-12-1219:50编辑各位朋友们,大家好,请教一个问题。如下图所示,来自电网的市电整流滤波之后,用线性稳压器生成一个5V电源,5V电源给单片机供电,单片机通过串口CH340给电脑发送数据。因为没有搞过220V电路,不清楚,这个5V电源和GND如果连接到电脑(台式机和不接电源的笔记本电脑)的USB接口,会不会使得电脑(台式机和不接电源的笔记本电脑)炸机,请各位朋友们解答一下,谢谢朋友们。
2023-12-12 11 -
求助 此电路总是导致单片机损坏 求原因
本帖最后由量子纠缠于2023-6-1417:31编辑此电路是直流载波的uart通信短接为了实现可接收自己发出的数据T2CH1接单片机发出的周期100k的CLOCKTXRX都接单片机D9防止灌电流现在问题是设备使用一段时间短则10秒多则几个小时就会导致单片机损坏(单片机的3.3和gnd短路)单片机APM32F103C8T6请教可能是什么原因此电路设计哪里有问题应该怎样改进。补充:vcc是15v直流载波波特率是4800单片机是3,3供电,是从78L12的12v又加了DCDC降到3.3单片机io口是5v耐受的。加光耦隔离肯定是可以的。就是我这板子太小了,放不下。这个设计是别人量产的,不加应该是有办法使用的。---------------------------结论:总线上加个TVS可能是有用的我加的比较大24v的
2023-05-08 25 -
关于GD32E230在MDK5环境下用DAP仿真器烧录错误的问题
大家请教一下,GD32E230用DAP烧录程序的时候出现这样的对话框,有什么解决办法吗,keil5环境下CMSIS-DAP-ARMv8-MErrorCannotaccessMemory(@0xe00ffff0,Read,AccSize:4byte)
2022-03-29 5 -
大佬们,急问
本帖最后由tyw于2022-3-912:39编辑我用了新唐M4系列的主控,然后用SPI1想和SPIFlash通信,结果写入和读出的数据不准确,是什么原因。以下是我使用的代码//*****************************************************************************//函数名称:voidSPI_Flash_Send_Add(uint32_tAddress)//函数功能:向SPIFlash发送地址//入口参数://出口参数://说明://*****************************************************************************voidSPI_Flash_Send_Add(uint32_tAddress){SPI_WRITE_TX(SPI1,(Address>>16)&0xff);SPI_WRITE_TX(SPI1,(Address>>8)&0xff);SPI_WRITE_TX(SPI1,Address);/*Waitready*/while(SPI_IS_BUSY(SPI1));}//*****************************************************************************//函数名称:uint8_tSPI_Flash_Read_Data(uint8_t*pRamAddress,uint16_tcnt)//函数功能:从SPIFlash中读取数据到指定地址的Ram区域//入口参数:cnt不能超过SPI传输的最大值!!//出口参数://说明://*****************************************************************************voidSPI_Flash_Read_Buff(uint32_tAddress,uint8_t*pRamAddress,uint16_tcnt){//SendthereadslowcommandSPI_SET_SS_LOW(SPI1);SPI_WRITE_TX(SPI1,SPIFLH_CMD_READSLOW);/*Waitready*/while(SPI_IS_BUSY(SPI1));//SendtheaddressSPI_Flash_Send_Add(Address);//Readnumberofbyteswhile(cnt){//8位,读的好像是32位???SPI_WRITE_TX(SPI1,Dummy_Byte);*pRamAddress++=SPI_READ_RX(SPI1);//读SPIDATAIN数据/*Waitready*///while(SPI_IS_BUSY(SPI1));cnt--;}SPI_SET_SS_HIGH(SPI1);}//*****************************************************************************//函数名称:uint8_tSPI_Flash_Write_Buff//函数功能:将BUFF中的数据写入到SPIFlash的指定地址//入口参数://出口参数://说明://*********************************
2022-03-08 6 -
我这个程序用单片机数码管显示相关内容 反映很慢
#include"reg52.h"#include"HX711.h"#include"uart.h"#include"LCD1602.h"#include"temp.h"typedefunsignedcharu8;typedefunsignedintu16;u16KEY_NUM=0;unsignedlongHX711_Buffer=0;unsignedlongWeight_Maopi=0;Weight_Shiwu=0;bitFlag_OK=0;sbitkey_stop=P3^0;sbitkey_star=P3^1;sbitkey_fen=P3^2;sbitkey_shi=P3^3;sbitLSA=P2^2;sbitLSB=P2^3;sbitLSC=P2^4;u8DisplayDataTemp[8];u8DisplayWeight[8];u8DisplayData[8];u8codesmgduan[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x6f};u8miao=0;u8fen=0;u8shi=0;u8miao_L,miao_H,fen_L,fen_H,shi_L,shi_H;u8State=1;u16counter=0;voiddelay(u16x){//ÑÓʱº¯Êýwhile(x--);}//delayvoidDelay_ms(u16n){u16i,j;for(i=0;i
2022-03-06 3 -
MCU驱动TFT彩屏 刷屏数据40ms左右传完 但刷屏用了300ms
MCU使用SPI驱动TFT彩屏系统时钟33.1776MHzSPI频率FOSC/2刷屏数据40ms左右传完了但屏幕实际刷新时间用了300ms以上40ms是在刷屏程序里拉低引脚再拉高引脚然后用逻辑分析仪测出来的,刷屏时间的300ms是录屏后数帧数数出来的请问下这个是哪里的问题,是TFT的初始化有问题吗以下代码#include#include"TFT.h"#include"weather.h"sbitBLK=P5^3;//背光控制sbitRS=P0^5;//数据命令切换线sbitRST=P0^6;//复位线sbitCS=P0^7;//片选sbitSCLK=P1^5;//SPI时钟线sbitMOSI=P1^3;//SPI数据线sbitLED=P5^0;unsignedinttime_i=0;voidTimer0Init(void);voidUartInit(void);bitLcd_Clean=0;bitLcd_color=1;voidmain(){Timer0Init();UartInit();LED=1;ET0=1;EA=1;Lcd_Init();while(1){if(Lcd_Clean){Lcd_Clean=0;if(Lcd_color){Lcd_clear(0x8080);Lcd_color=0;}else{Lcd_clear(0xFFFF);Lcd_color=1;}}}}voidTM0_Isr()interrupt1{time_i++;if(time_i==1000){time_i=0;Lcd_Clean=1;}}voidTimer0Init(void)//1毫秒@33.1776MHz{AUXR|=0x80;//定时器时钟1T模式TMOD&=0xF0;//设置定时器模式TL0=0x66;//设置定时初始值TH0=0x7E;//设置定时初始值TF0=0;//清除TF0标志TR0=1;//定时器0开始计时}voidUartInit(void)//115200bps@33.1776MHz{SCON=0x50;//8位数据,可变波特率AUXR|=0x40;//定时器时钟1T模式AUXR&=0xFE;//串口1选择定时器1为波特率发生器TMOD&=0x0F;//设置定时器模式TL1=0xB8;//设置定时初始值TH1=0xFF;//设置定时初始值ET1=0;//禁止定时器%d中断TR1=1;//定时器1开始计时}voidDelay500ms()//@12.000MHz{unsignedchari,j,k;_nop_();_nop_();i=23;j=205;k=120;do{do{while(--k);}while(--j);}while(--i);}voidSPI_Init()//初始化SPISPI频率为FOSC/2{SPDAT=0;SPSTAT=0xC0;SPCTL=0xDF;}voidLcd_Write_cmd(unsignedcharcmd)//向TFT写入一个命令{CS=0;RS=0;SPDAT=cmd;while(!(SPSTAT&0x80));SPSTAT=0xC0;CS=1;}voidLcd_Write_data(unsignedchardat)//
2022-02-09 7 -
请教IAP15F2k61s2开机时会误擦除应用程序的问题
如题,外接晶振33.1776M,自己写引导程序,发现开机时可能会死机,重新下载程序后又正常,有遇到过的嘛,怎么解决的?
2022-02-09 5 -
程序调试后总出现如下错误,请高手指教
11-2.C(40):errorC231:'keyscan_num':redefinition11-2.C(41):errorC141:syntaxerrornear'return'11-2.C(41):errorC231:'keyscan_num':redefinition11-2.C(42):errorC141:syntaxerrornear'}'程序如下:#includesbitwr=P3^6;sbitrd=P3^2;sbitkey0=P1^0;//定义P1.0脚的按键为正弦波键key0sbitkey1=P1^1;//定义P1.1脚的按键为方波键key1sbitkey2=P1^2;//定义P1.2脚的按键为三角波键key2sbitkey3=P1^3;//定义P1.3脚的按键为梯形波键key3sbitkey4=P1^4;//定义P1.3脚的按键为锯齿波键key4unsignedcharflag;unsignedcharconstcode//以下为正弦波采样点数组256个数据SIN_code[256]={0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe3,0xe1,0xde,0xdc,0xda,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x14,0x12,0x10,0xf,0xd,0xc,0xb,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x3,0x2,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x2,0x3,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xa,0xc,0xd,0xe,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c,0x1
2022-02-07 2 -
GD32F207VCT6开发板LWIP问题
我使用GD32开发板下载了以太网模块例程带操作系统和不带操作系统的,用网络调试助手都连不上,但我用cmdping测试可以通,这是什么问题,有没有大佬指导一下。
2022-01-26 3 -
f460是不是没有FSMC,我手册看了好久,都没找到
是不是没有类似于stm32的fsmc或者叫FMC这类的总线搜索复制
2022-01-18 7 -
SWCLK 和 SWDIO被误设置
GD32E230C的板子不小心将PA13和PA14的端口的SWDIO和SWCLK设置成复用了,代码烧录不进去,怎么办,求大佬解决~~
2021-12-30 4