hzz592788

  • 2021-06-29
  • 回复了主题帖: 关于合泰HT66F018芯片的PWM输出配置程序

    xuanyuanzhu 发表于 2021-6-29 14:06 这个程序是网上的吧??前面的延时函数似乎都没用上,后面的代码需要验证一下
    这是我自己用在0185的代码,延时程序是懒得删而已

  • 回复了主题帖: 关于合泰HT66F018芯片的PWM输出配置程序

    用定时器产生PWM #include "HT66F018.h" #define u8 unsigned char #define u16 unsigned int   #define BEEP  _t1on  //TMn 计数器 On/Off 控制位 void delay_ms(u16 ms) {     while(ms--)     {         GCC_DELAY(2000);//编译器自带延时指定个周期,在主频8Mhz下,一个指令周期为0.5us             GCC_CLRWDT();     } } void pwminit() {     _pac7=0;     _pa7=0;     _t1cp=1;//设置端口为定时器端口          _tm1c0=0x20;//clk=sys/16     _tm1c1=0xa8;//pwm模式 高电平有效  比较器P匹配清0     _tm1rpl=125;//f=sys/16/125=4k     _tm1rph=0;          _tm1al=62;//duty=62/125=49.6%     _tm1ah=0;     } void main() {     _wdtc=0xa8;//关闭看门狗     _pac3=0;//设置为输出          _cos=1;//设置pa3管脚为IO,而不是比较器输出     _acerl=0;//模拟端口关闭          pwminit();                    while(1)     {         BEEP=1;            }      }

  • 2021-06-16
  • 加入了学习《数字电子技术基础》,观看 集成施密特触发器

  • 2021-04-10
  • 回复了主题帖: 沁恒RISC- V内核CH32V103这款单片机怎么样?

    IDE还可以,我认为没有太大问题。但是要是能用上KEIL就好了。总的来说还是不错的,中间有项目需求,希望有代理商的联系方式,可能是春节没结束,没有回应。后来有需求的客户就也没了消息。 一切建立在价格上面说话:便宜就是好用,贵就是不行。

  • 2021-03-09
  • 发表了主题帖: 修个奇奇怪怪的HC-SR04

    以前还在学校的时候,买过一批10来个超声波传感器。因为有一段时间才记起来,用的时候发现踩坑了,这批超声波传感器就是个垃圾货。 一开始我以为是我的程序问题,还翻箱倒柜找了个旧的测试,确定我的程序没问题之后还上网搜过怎么回事。 有大佬说可能是引脚的信号被隔壁的布线吸收了,我寻思着好像不是这么回事吧。由于我买回来隔了差不多半年才想起来拆快递,那个时候再找客服,人家也不会理我了。不想白费那口舌就在传感器上面标个坏字直接扔一边了。 大学毕业之后好像我是直接全扔了,但是没想到我在我的一堆传感器里面翻到这个罪恶的东西。那个坏字还在那里。。。。。。 后面我有想过是晶振的问题,当时我也挂了示波器上看了,晶振压根没用。最恶心的是,这破玩意连晶振的丝印都磨了(有可能本身连晶振也没)。其他芯片也磨了。 我后面买的新款单芯片的上面挂的是8Mhz,我想估计这单芯片内部的方案应该和这驱动电路没什么差别(搬来搬去的东西)。就扣个贴片的8M晶振搞上去。 恶心的事情出现了,一开始都是不信,我就不想理它了。直接去吃饭了(我忘记断电了),吃完饭回来发现它行了,时隔若干年,我终于看到它行了。 然后我开开心心断电,晚上想跟老朋友炫耀一下。上电,它又不行了。跟老朋友挂完电话,出去吃个宵夜。回来它又行了。 现在我想不明白的是变量究竟是它要热机还是我要吃东西? 那个坏字终究还是不能擦呀,有大佬给一下思路吗?谢谢啦!

  • 2021-02-08
  • 发表了主题帖: 【RISC-V MCU CH32V103测评】硬件IIC驱动OLED(终于)

    直接重新写了一遍程序,懒得修改了。但是,突然间它就可以了 这就更加疑惑了,我想不明白它凭什么可以了,一样的代码啊 IIC初始化部分 void IIC_Init( u32 bound, u16 address ) { GPIO_InitTypeDef GPIO_InitStructure; I2C_InitTypeDef I2C_InitTSturcture; RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE ); RCC_APB1PeriphClockCmd( RCC_APB1Periph_I2C2, ENABLE ); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init( GPIOB, &GPIO_InitStructure ); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init( GPIOB, &GPIO_InitStructure ); I2C_InitTSturcture.I2C_ClockSpeed = bound; I2C_InitTSturcture.I2C_Mode = I2C_Mode_I2C; I2C_InitTSturcture.I2C_DutyCycle = I2C_DutyCycle_2; I2C_InitTSturcture.I2C_OwnAddress1 = address; I2C_InitTSturcture.I2C_Ack = I2C_Ack_Enable; I2C_InitTSturcture.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; I2C_Init( I2C2, &I2C_InitTSturcture ); I2C_Cmd( I2C2, ENABLE ); I2C_AcknowledgeConfig( I2C2, ENABLE ); } 指令和数据传输部分 /********************************************** // IIC Write Command **********************************************/ void Write_IIC_Command(unsigned char IIC_Command) { while( I2C_GetFlagStatus( I2C2, I2C_FLAG_BUSY ) != RESET ); I2C_GenerateSTART( I2C2, ENABLE ); while( !I2C_CheckEvent( I2C2, I2C_EVENT_MASTER_MODE_SELECT ) ); I2C_Send7bitAddress( I2C2, WriteAddr, I2C_Direction_Transmitter ); while( !I2C_CheckEvent( I2C2, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED ) ); I2C_SendData( I2C2, (u8)(0x00&0x00FF) ); while( !I2C_CheckEvent( I2C2, I2C_EVENT_MASTER_BYTE_TRANSMITTED ) ); if( I2C_GetFlagStatus( I2C2, I2C_FLAG_TXE ) != RESET ) { I2C_SendData( I2C2, IIC_Command ); } while( !I2C_CheckEvent( I2C2, I2C_EVENT_MASTER_BYTE_TRANSMITTED ) ); I2C_GenerateSTOP( I2C2, ENABLE ); } /********************************************** // IIC Write Data **********************************************/ void Write_IIC_Data(unsigned char IIC_Data) { while( I2C_GetFlagStatus( I2C2, I2C_FLAG_BUSY ) != RESET ); I2C_GenerateSTART( I2C2, ENABLE ); while( !I2C_CheckEvent( I2C2, I2C_EVENT_MASTER_MODE_SELECT ) ); I2C_Send7bitAddress( I2C2, WriteAddr, I2C_Direction_Transmitter ); while( !I2C_CheckEvent( I2C2, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED ) ); I2C_SendData( I2C2, (u8)(0x40&0x00FF) ); while( !I2C_CheckEvent( I2C2, I2C_EVENT_MASTER_BYTE_TRANSMITTED ) ); if( I2C_GetFlagStatus( I2C2, I2C_FLAG_TXE ) != RESET ) { I2C_SendData( I2C2, IIC_Data ); } while( !I2C_CheckEvent( I2C2, I2C_EVENT_MASTER_BYTE_TRANSMITTED ) ); I2C_GenerateSTOP( I2C2, ENABLE ); } void OLED_WR_Byte(unsigned dat,unsigned cmd) { if(cmd) { Write_IIC_Data(dat); } else { Write_IIC_Command(dat); } } OLED初始化部分 void OLED_Init(void) { IIC_Init( 400000, 0xA0); Delay_Ms(800); OLED_WR_Byte(0xAE,OLED_CMD);//--display off OLED_WR_Byte(0x00,OLED_CMD);//---set low column address OLED_WR_Byte(0x10,OLED_CMD);//---set high column address OLED_WR_Byte(0x40,OLED_CMD);//--set start line address OLED_WR_Byte(0xB0,OLED_CMD);//--set page address OLED_WR_Byte(0x81,OLED_CMD); // contract control OLED_WR_Byte(0xFF,OLED_CMD);//--128 OLED_WR_Byte(0xA1,OLED_CMD);//set segment remap OLED_WR_Byte(0xA6,OLED_CMD);//--normal / reverse OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64) OLED_WR_Byte(0x3F,OLED_CMD);//--1/32 duty OLED_WR_Byte(0xC8,OLED_CMD);//Com scan direction OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset OLED_WR_Byte(0x00,OLED_CMD);// OLED_WR_Byte(0xD5,OLED_CMD);//set osc division OLED_WR_Byte(0x80,OLED_CMD);// OLED_WR_Byte(0xD8,OLED_CMD);//set area color mode off OLED_WR_Byte(0x05,OLED_CMD);// OLED_WR_Byte(0xD9,OLED_CMD);//Set Pre-Charge Period OLED_WR_Byte(0xF1,OLED_CMD);// OLED_WR_Byte(0xDA,OLED_CMD);//set com pin configuartion OLED_WR_Byte(0x12,OLED_CMD);// OLED_WR_Byte(0xDB,OLED_CMD);//set Vcomh OLED_WR_Byte(0x30,OLED_CMD);// OLED_WR_Byte(0x8D,OLED_CMD);//set charge pump enable OLED_WR_Byte(0x14,OLED_CMD);// OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel } main函数 #include "debug.h" #include "oled.h" #include "bmp.h" /********************************************************************** /******************************************************************************* * Function Name : main * Description : Main program. * Input : None * Return : None *******************************************************************************/ int main(void) { u8 t; Delay_Init(); USART_Printf_Init(115200); printf("SystemClk:%d\r\n",SystemCoreClock); OLED_Init(); //初始化OLED OLED_Clear() ; t=' '; OLED_ShowCHinese(0,0,0);//中 OLED_ShowCHinese(18,0,1);//景 OLED_ShowCHinese(36,0,2);//园 OLED_ShowCHinese(54,0,3);//电 OLED_ShowCHinese(72,0,4);//子 OLED_ShowCHinese(90,0,5);//科 OLED_ShowCHinese(108,0,6);//技 OLED_Clear(); Delay_Ms(2000); OLED_ShowCHinese(0,0,0);//中 OLED_ShowCHinese(18,0,1);//景 OLED_ShowCHinese(36,0,2);//园 OLED_ShowCHinese(54,0,3);//电 OLED_ShowCHinese(72,0,4);//子 OLED_ShowCHinese(90,0,5);//科 OLED_ShowCHinese(108,0,6);//技 Delay_Ms(2000); while(1) { OLED_Clear(); OLED_ShowCHinese(0,0,0);//中 OLED_ShowCHinese(18,0,1);//景 OLED_ShowCHinese(36,0,2);//园 OLED_ShowCHinese(54,0,3);//电 OLED_ShowCHinese(72,0,4);//子 OLED_ShowCHinese(90,0,5);//科 OLED_ShowCHinese(108,0,6);//技 OLED_ShowString(6,3,"0.96' OLED TEST",16); //OLED_ShowString(8,2,"ZHONGJINGYUAN"); // OLED_ShowString(20,4,"2014/05/01"); OLED_ShowString(0,6,"ASCII:",16); OLED_ShowString(63,6,"CODE:",16); OLED_ShowChar(48,6,t,16);//显示ASCII字符 t++; if(t>'~')t=' '; OLED_ShowNum(103,6,t,3,16);//显示ASCII字符的码值 Delay_Ms(2000); OLED_DrawBMP(0,0,128,8,BMP1); //图片显示(图片显示慎用,生成的字表较大,会占用较多空间,FLASH空间8K以下慎用) Delay_Ms(2000); } } 源码在这里,下一步我又回到SPI去了

  • 回复了主题帖: 【RISC-V MCU CH32V103测评】IIC硬件测试

    一开始我也是想用硬件IIC驱动,感觉思路没问题啊。而且我发现,它随机某个时间卡在主循环的一个if语句那里,按复位键都没用,必须断电重新上电。让我更加疑惑了。

  • 2021-02-06
  • 回复了主题帖: 【RISC-V MCU CH32V103测评】驱动OLED

    okhxyyo 发表于 2021-2-6 21:24 是结果不符合预期吗?不知道楼主说的错是什么样的错误
    上示波器看,就出来的时序看起来没毛病,但是就是不行。我再看看先,估计是应答部分。还是软件IIC好用

  • 发表了主题帖: 【RISC-V MCU CH32V103测评】驱动OLED

    本来是想着用硬件IIC驱动,但是程序编译没有错,我的逻辑也没有错。错就在我不知道哪里有问题。 所以就先安安稳稳地软件IIC吧。 这次是用IIC接口的0.96寸的OLED。就是先移植好代码,方便后面的使用。后面我又要画个拓展板了。 接线如下: //              ---------------------------------------------------------------- //              GND   电源地 //              VCC   接5V或3.3v电源 //              SCL   接PB5(SCL) //              SDA   接PB6(SDA) //              ---------------------------------------------------------------- 直接在附件放代码和OLED的datasheet了

  • 回复了主题帖: 【RISC-V MCU CH32V103测评】LED呼吸灯

    annysky2012 发表于 2021-2-6 08:46 程序可以添加附件或者有代码编辑的那个选项
    okok

  • 2021-02-04
  • 回复了主题帖: 【RISC-V MCU CH32V103测评】LED呼吸灯

    w494143467 发表于 2021-2-4 19:32 老哥这排版要优化优化哈!
    okkok,以后注意一下

  • 发表了主题帖: 【RISC-V MCU CH32V103测评】LED呼吸灯

    安装好编译器,接好线。(嘻嘻,没想到我真的找到一条2*5pin排线,免得让杜邦线搞得我心烦) 用MounRiver Studio打开他们的GPIO例程。 void GPIO_Toggle_INIT(void)    {   GPIO_InitTypeDef  GPIO_InitStructure;   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;   GPIO_Init(GPIOA, &GPIO_InitStructure); } 以上主要是对PA0进行初始化。包括了使能PA0相关的GPIO端口时钟,配置GPIO引脚, 设置为推挽输出,设置输出速度。最后的GPIO_Init()是调用了库函数,初始化GPIOA。 int main(void) {     u8 i=0;     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);     Delay_Init();     USART_Printf_Init(115200);     printf("SystemClk:%d\r\n",SystemCoreClock);     printf("GPIO Toggle TEST\r\n");     GPIO_Toggle_INIT();     while(1)   {      Delay_Ms(250);      GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i==0) ? (i=Bit_SET):(i=Bit_RESET));     } } 以上是例程的main函数,他的printf函数是真的方便。 主要还是一个GPIO_WriteBit()来反复翻转PA0的状态。 稍微改一下,PA0接上LED就可以成呼吸灯了。 int main(void) {     u8 i=0;     u16 t=0;     int MENU=0;     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);     Delay_Init();     USART_Printf_Init(115200);     printf("SystemClk:%d\r\n",SystemCoreClock);     printf("GPIO Toggle TEST\r\n");     GPIO_Toggle_INIT();     while(1)   { //        Delay_Ms(250); //        GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i==0) ? (i=Bit_SET):(i=Bit_RESET)); //        GPIO_WriteBit(GPIOA, GPIO_Pin_0,Bit_SET); //        Delay_Ms(250); //        GPIO_WriteBit(GPIOA, GPIO_Pin_0,Bit_RESET);         if(MENU == 0)         { //LED逐渐变亮                 for(i = 0; i < 20; i++)                 {                     GPIO_WriteBit(GPIOA, GPIO_Pin_0,Bit_SET); //LED1亮                     Delay_Us(t); //延时t us                     GPIO_WriteBit(GPIOA, GPIO_Pin_0,Bit_RESET); //LED1灭                     Delay_Us(501-t); //延时501-t us                 }                  t++;                 if(t==500){//t加到500,改变状态值MENU                     MENU = 1;                 }             }         if(MENU == 1)         { //LED逐渐变暗                 for(i = 0; i < 20; i++)                 {                     GPIO_WriteBit(GPIOA, GPIO_Pin_0,Bit_SET); //LED1亮                     Delay_Us(t); //延时t                     GPIO_WriteBit(GPIOA, GPIO_Pin_0,Bit_RESET); //LED1灭                     Delay_Us(501-t); //延时501-t                 }                 t--;                 if(t==1)                 {                     MENU = 0;                 }         }     } }    

  • 2021-02-01
  • 发表了主题帖: 【RISC-V MCU CH32V103测评】板子开箱与原理图分析

    首先感谢eeworld给我评测的机会。 但是沁恒给的板子图片与实物的差异。。。。。。EMMMMMMM。。。。还能接受吧。 先不管IDE那先,我还是习惯先看原理图再上电。 原理图的PDF文档中有四张板子。下面这个便是我们拿到手板子的原理图,到时候再根据他们提供的EVT板的原理图自己画一个拓展板就好了。 主控芯片为CH32V103C8T6,既然是叫这个名字了,应该是三金某颗其他芯片的主吧 顺带去看了看CH32V103的数据手册,真不错,中文的。免得我在那里瞎猜英文。 同样是3.3v供电,在VDD和VDDA之间接一个0欧姆的电阻当隔离。其他也基本一致。看来C8T6的PIN都成了某个标准了,哈哈哈哈。 外部也是接了8M和32.768K的晶振 板子边角的小按键是复位按键 板子上的BOOT0跳线帽接地,而BOOT1悬空。 插一段datasheet上面的话: 在启动时,通过自举引脚(BOOT0 和 BOOT1)可以选择三种自举模式中的一种: 从程序闪存存储器自举 从系统存储器自举 从内部 SRAM 自举 自举加载程序存放于系统存储区,可以通过 USART1 和 USB 接口对程序闪存存储区内容重新编程。 电源部分就是一个CE6219转3.3V,然后用D1标志电源状态。 神奇的是,板载用于驱动的两颗蓝色LED竟然不接上任何PIN,也就是说我还要接个排线才能点灯。 我第一次拿到这种操作的板子呢,哈哈哈哈。 剩下的接口和排针就没什么好讲了,差不多的亚子了。 上个星期一直挺忙的,一直拖到现在才有空看这块板子。接下来的进度就正常进行了。  

  • 2021-01-30
  • 回复了主题帖: 【NUCLEO-L552ZE测评】拓展板ws2812供电纠正

    简单happy 发表于 2021-1-29 20:09 我以为我的(盒子)板子够多了,没有想到天外有天啊
    其实是打板和元件比较多,JLC的羊毛。哈哈哈哈

  • 回复了主题帖: 【NUCLEO-L552ZE测评】拓展板ws2812供电纠正

    fxyc87 发表于 2021-1-29 19:59 这开发板也太多了吧?
    其实是打板和元件比较多,开发板刚刚整理完,也就50来张

  • 2021-01-28
  • 发表了主题帖: 【NUCLEO-L552ZE测评】拓展板ws2812供电纠正

    今天想搞一下串口与AIR530模块的通信,结果一直找不到那个模块去哪里了,而自己的esp01又刷了其他固件,其他的还没寄回家。 我的房间现状如下:(原谅我找不到我的模块了这些日子全在忙这些整理的破事) 重点是我的拓展板子是有错,ws2812的供电我接去3V3了,搞了半天我说怎么还是不行,一看原理图气死人。 ws2812的供电是在+3.5~+5.3V,逻辑电压在-0.5~VDD+0.5V。。。。。无声叹息。 立创那里改好了,我就直接不用这灯了,反正我做个小手表而已,这灯我也不知道我为什么要画。。。。 具体的工程链接如下,后面的代码再跟进更新啦: https://oshwhub.com/hzz5927/nucleo-l552ze-q-ta-zhan-ban  

  • 2021-01-27
  • 发表了主题帖: 【NUCLEO-L552ZE测评】小小温度计

    拓展板上面的NTC接到开发板的A0接口。对应PA3引脚,第8通道的ADC。 这次用例程的ADC板块的ADC_MultiChannelSingleConversion工程,大致看一下程序的功能如下: 从一开始,ADC就会按顺序在每次按键触发时按顺序逐一转换选定的通道(discontinuous mode).DMA将转换数据到数组,数组一直更新(circular mode)。 当DMA传输完成时,LED1开启;在下一个DMA半传输时,LED1熄灭。 ADC序列完成后(执行三个ADC转换),将计算电压和温度并将其存储在变量中:     uhADCxConvertedData_VoltageGPIO_mVolt     uhADCxConvertedData_VrefInt_mVolt     hADCxConvertedData_Temperature_DegreeCelsius     uhADCxConvertedData_VrefAnalog_mVolt 大致改一下,显示一行转换好的电压值,即hADCxConvertedData_VoltageGPIO_mVolt,另一行显示转换的温度值。 先看一下NTC的datasheet:https://item.szlcsc.com/14214.html 温度与阻值对应的表如图: NTC的采样电路原理图与公式如图所示: 利用EXCEL计算出对应阻值的采样所得电压值: 取出0-99摄氏度,由于datasheet上面给的是5摄氏度为一步,方便一点我就先计算间隔为线性关系。 定义一个数组表,查表法测试温度,如下: const unsigned int temptab[]={  //0 to 99?   10k ntc 3380K 886,914,943,972,1001, 1030,1060,1090,1121,1151, 1181,1212,1243,1275,1306, 1337,1368,1400,1431,1463, 1494,1525,1556,1588,1619, 1650,1680,1710,1740,1771, 1801,1830,1859,1889,1918, 1947,1974,2002,2029,2057, 2084,2111,2139,2166,2193, 2212,2236,2259,2282,2306, 2330,2359,2381,2402,2429, 2438,2457,2477,2496,2516, 2535,2552,2569,2587,2603, 2621,2636,2652,2667,2683, 2698,2712,2726,2739,2753, 2767,2779,2791,2804,2816, 2828,2839,2849,2860,2870, 2881,2890,2900,2909,2919, 2928,2936,2945,2953,2962, 2970,2994,2985,2992,3000, };  原程序是采样A2接口的电压,修改至A0接口的。  部分程序如下:  temp=uhADCxConvertedData_VoltageGPIO_mVolt;     if(temp>3007)     {         couter=100;         }     else if(temp<100)     {         couter=0;     }     else     {         for(couter=0;couter<100;couter++)         {             if(temptab[couter]>temp)    break;         }     }         LCD_ShowIntNum(60,120,uhADCxConvertedData_VoltageGPIO_mVolt,4,RED,WHITE,32);         LCD_ShowString(130,120,"mV",RED,WHITE,32,0);         LCD_ShowIntNum(80,90,couter,2,RED,WHITE,32);         Draw_Circle(125,98,3,RED);//画个圆当摄氏度单位的圆圈         LCD_-ShowChar(130,90,'C',RED,WHITE,32,0); 全部程序链接如下: 链接:https://pan.baidu.com/s/1-BfKNi-WrbsB9JX2U_t2Ag  提取码:8888  复制这段内容后打开百度网盘手机App,操作更方便哦 效果如图:

  • 发表了主题帖: 【NUCLEO-L552ZE测评】拓展板成品

    原理图纠正:NTC那里的R11阻值是10K,1%。 NTC我用的是之前立创搞活动优惠的0603封装NCP18XH103F03RB  ,买回来我都还没用过,不知道效果如何。 板子回来了,有个小问题,就是IPS屏幕的排线绕不了底层去焊接的,因为中间的方形孔忘记画好了。 顶层的也可以用,不过我还是先用模块的排针连接。没想到我的房间连个WS2812都没了,刚刚下单,等它回来再补焊. 成品如下图: 上板的效果如图: 简陋了点,能用就行,因为我讨厌死排线了。      

  • 2021-01-18
  • 回复了主题帖: 测评入围名单:沁恒RISC-V架构32位通用MCU CH32V103有奖评测

    信息确认无误!感谢沁恒和EEWORLD BBS,定会按计划完成评测任务!

  • 2021-01-14
  • 发表了主题帖: 【NUCLEO-L552ZE测评】做个拓展板

    做个简简单单的拓展板,有NTC测量温度,MPU6050等等。结合那个圆形IPS,1月份基于这块拓展版做个小手表。 具体的原理图如下,直接用立创EDA画的: PCB如下: 具体的工程链接如下,后面的代码再跟进更新啦: https://oshwhub.com/hzz5927/nucleo-l552ze-q-ta-zhan-ban    

学过的课程

最近访客

< 1/1 >

统计信息

已有34人来访过

  • 芯币:15
  • 好友:--
  • 主题:11
  • 回复:12
  • 课时:--
  • 资源:--

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言