你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【文末有奖】18年,出货150亿颗,STM32何以深入人心  

[复制链接]
STMCU-管管 发布时间:2026-1-4 09:28
阅读主题, 点击返回1楼
1 收藏 1 评论56 发布时间:2026-1-4 09:28
56个回答
liukong 回答时间:2026-1-6 15:37:17

恭喜STM32出货150亿颗,做大做强再创辉煌

BEEE 回答时间:2026-1-6 22:23:03

👍 18年,出货150亿颗,STM32何以深入人心❤️ 🚀️

LSMing1623 回答时间:2026-1-7 09:04:53

恭喜STM32出货150亿颗🎉️ ,里面也有我的一点贡献😄

STMCU-管管 回答时间:2026-1-7 14:41:31

CM_STM32 发表于 2026-1-4 21:36
刚接触到stm32,是跟着B站视频学习用的STM32F103C8T6,当时学的还是标准库,初始化需要通过函数操作, ...

[md]不少不少

老牛洋车 回答时间:2026-1-8 08:53:02

恭喜STM32出货150亿颗。毫不夸张地说:20年来ST公司对普及单片机的应用作出了卓越的贡献。

fafa1 回答时间:2026-1-8 10:05:34

骄傲一下:150亿项目有我!!!😄

molun 回答时间:2026-1-8 16:47:33

最开始接触STM32应该追溯到2020年,工作发生了变动,家里闲了大半年,无意间拾起了DIY的乐趣,最开始就是接触STM32103C8T6开发板,后边MCU价格疯涨,十多块的开发板涨到一百多。好在后来价格回落了,才能有后续的诸多折腾。

image.png

正儿八经使用STM32开发工具是去年参加EEPW论坛的活动,“Let's Do!ST NUCLEO-WBA55CG无线MCU开发大作战”,通过开发板制作了一个可以通过蓝牙和微信小程序控制的灯带项目。系统的学习了环境搭建,基于官方实例代码的修改,程序编译以及与微信小程序的接入互动等。

image.png

DIY方面也使用立创EDA绘制了基于STM32103C8T6的开发板,也算是半路小小的入门了。

18 年,从一颗芯片的初心到 150 亿颗的传奇!STM32 用十八载热血与坚守,在嵌入式领域书写了属于自己的辉煌答卷。从 Cortex-M 内核的果断布局到 18nm 相变存储器的技术突破,从 STM32Cube 生态的化繁为简到连续四年登顶全球 MCU 市场榜首,每一步都彰显着创新的力量。这 150 亿颗芯片,是工业电机里的精准驱动,是智能家居中的便捷连接,是医疗设备上的生命守护,更是千万开发者逐梦路上的坚实伙伴。它打破了技术壁垒,重塑了市场格局,让嵌入式创新变得触手可及!致敬过往,更向未来!下一个征程,STM32 将以更强算力、更优能效、更全生态,冲刺下一个 150 亿颗目标,与全球开发者并肩,在 AIoT 的广阔天地中,再创行业新高度,铸就更多不可能!

image.png
cove 回答时间:2026-1-9 11:50:09
  • 产品型号 :STM32F103C8T6核心板(俗称“Blue Pill”蓝色药丸)。
  • 为什么选用 : 那还是大一刚进实验室的时候,学长告诉我:“想搞机器人,51是不够的,Arduino 效率太低,你得学 STM32。” 当时作为穷学生,这款板子简直是“性价比之王”。十几块钱的价格,72MHz的主频,丰富的接口,对于当时只见过 51 单片机的我来说,简直就是性能怪兽。加上网上教程铺天盖地(感谢野火/正点原子),它是最理所当然的选择。
  • 使用过程 : 刚开始是痛苦的。习惯了 51 的直接操作寄存器,第一次面对 STM32 庞大的库函数和复杂的时钟树配置,我整个人是懵的。 我记得为了点亮板载的那颗 PC13 LED,我折腾了一整晚。从安装 Keil MDK,到配置 ST-Link 驱动,再到理解什么是 GPIO_Init。 当第一次代码烧录进去,看到那颗绿色的 LED 按我设定的频率闪烁时,那种成就感无以言表。后来,我用它配合 L298N 驱动了人生第一个直流电机,虽然只是简单的 PWM 调速,但看着示波器上完美的方波,我知道我入门了。
  • 感受 : F103C8T6 虽然资源有限,Flash 常常捉襟见肘,但它是我的一位“严师”。它逼着我学会了看 Datasheet,逼着我理解了中断优先级,逼着我从“写代码”进化到了“配置硬件”。它是简陋的,但又是强大的,它是我从纯软件思维转向软硬结合思维的起点。直到现在,做一些小验证项目时,我手边还是会备着几块它。
电子烂人 回答时间:2026-1-11 20:10:27

恭喜STM32出货150亿颗!

第一次使用STM的MCU是在竞赛里替代掉8位和16位单片机,当时就被ST的MCU易用性所惊艳到,可以使用CUBE绕开繁琐且冗杂的RCC和外设配置,且ST的强大生态和海量资料的支持使得遇到问题可以快速定位并解决,用的型号是STM32F407VET6,也是工控最经典的型号了

老项目考古:大学时期和同学做的无人机,当时的飞控是H743,性能强大且外设丰富,可以满足大多数飞行需求。

8432b6cfb93f41075738a9631b63f90a.jpg

印象深刻的一次移植是从F4移植到H5上,当时的U5平台还很新颖,M33核的LP外设工号更低、DMA配置更复杂,且资料更少。不过CUBE的强大生态和高兼容性使得移植速度快了很多。

image.png

在中间固件这里选择x-cube-MEMS包,下载好之后选择LSM6DSO16IS这个传感器。

d2b8a0b89e397b6c351dcd13d3d23dc.png

之后选择I2C1接口,配置成FAST快速模式,这个I2C正好是板子上对应的传感器接口。M33核的DMA配置有点不同,这里先不配置DMA。

image.png

回到中间固件这里,把板子的I2C接口选中为I2C1。

image.png

时钟配置如图:

image.png

Qiuxiaoxiong 回答时间:2026-1-12 13:52:41
恭喜STM32出货150亿颗.
Xa__ 回答时间:2026-1-13 08:49:13

想了一下,第一次用STM32应该是学校的练习项目了,具体型号应该是F3系列,第一次练习是点灯,哈哈哈

LSMing1623 回答时间:2026-1-13 09:11:32

恭喜STM32出货150亿颗🎉️ ,里面也有我的一点贡献😄

latera 回答时间:2026-1-13 22:56:47
①分享与STM32的故事:回想我首次使用的STM32的芯片应该使用STM32F103C8T6,这已经是十几年前(2011)了。当时是用来做一个检测汽车车轮转动的角度的测量仪器。STM32F1系列在当时是相当的火。网上的教程和开发板都很多,而且在电子论坛和qq技术群上的讨论和学习的热度都很高。这个项目需要用到stm32的定时器来检测编码器,还有I2C,串口,spi来控制传感器和保存数据。对应我当时一个初学者来说,也是相对有难度,特别是当时发现,转速较快的时候,定时器获得的编码器读数不对。好在通过社区论坛得到帮助,发现中断中的处理时间过长,只要将计算处理放到中断外部就可以解决。这次也让我发现闭门造车很容易闭塞自己的想法。只有不断跟进新的技术才能有新的想法和解决问题的不同思路。

②老项目考古: 分享一下我的毕业设计,是一个具有VGA格式输出的摄像头设计, stm32f103c8作为主控芯片,OV9650摄像头获取拍摄数据,TrueView5725转码器将摄像头的YUV数据转为VGA数据并输出。stm32f103c8通过I2C控制摄像头和转码器,并且IO连接控制的按键和显示状态的led。
QQ20260113-213757.png QQ20260113-213815.png
主要代码实际为I2C控制OV9650和TrueView5725,包括控制他们的视频格式和启动。
  1. int main (void )
  2. {
  3.   SysInit();
  4.         RCC->APB2ENR|=1<<2;
  5.         GPIOA->CRH&=0xffff000f;
  6.         GPIOA->CRH|=0x00003330;
  7.         GPIOA->ODR|=0<<9|1<<10|0<<11;
  8.        
  9. //        ModuleInit();
  10. sccb_init();
  11. Ov9650Init();
  12. TrueView5725Init();
  13.         while(1)
  14.         {
  15.                 TaskControl();
  16.                
  17.                
  18.         }
  19. }
复制代码
其中 OV9650的初始化:
  1. u8 Ov9650Init()
  2. {
  3.         u16 num;
  4.         u16 i;
  5.         u8 val;
  6.         u8 rs=1;
  7.         unsigned char addr;

  8.         RCC->APB2ENR|=1<<2;
  9.         GPIOA->CRL&=0xffff0fff;
  10.         GPIOA->CRL|=0x00003000;

  11.         GPIOA->ODR|=0<<3;
  12.        
  13.         addr=CAM_OV9650;
  14.         sccb_senddata(0x12,0x80,addr);                                //软件复位

  15.         DelayMs(1);                                                                //手册要求

  16.         val=sccb_receivedata(0x0A,addr);

  17.         val=sccb_receivedata(0x0B,addr);       
  18.        
  19.         val=sccb_receivedata(0x11,addr);        
  20.        
  21. //        num=sizeof(OV9650Sxga565Set)/2;
  22.         num=sizeof(OV9650SxgaYuvSet)/2;
  23.         for(i=0;i<num;i++)
  24.         {
  25. //                sccb_senddata(OV9650Sxga565Set[i][0],OV9650Sxga565Set[i][1]);
  26.         sccb_senddata(OV9650SxgaYuvSet[i][0],OV9650SxgaYuvSet[i][1],addr);
  27.         }

  28.         #if 1                //用于TV5725 (YUV)
  29.         num=sizeof(OV9650Tv5725)/2;
  30.         for(i=0;i<num;i++)
  31.         {
  32.                 sccb_senddata(OV9650Tv5725[i][0],OV9650Tv5725[i][1],addr);
  33.         }
  34.         #endif
  35.         //读出1个看看是否写成功了
  36.         val=sccb_receivedata(0x11,addr);
  37.   
  38.         val=val;

  39.         return rs;

  40. }
复制代码
和 TrueView5725的初始化:

u8 TrueView5725Init()
{
        u16 num;
        u16 i;
        u8 val;
        u8 rs=1;
        unsigned char addr;

        RCC->APB2ENR|=1<<2;
        GPIOA->CRL&=0xfffff0ff;
        GPIOA->CRL|=0x00000300;

        GPIOA->ODR|=0<<2;
        Delayms(2);
        GPIOA->ODR|=1<<2;


        addr=TV_ADDR;

        num=sizeof(TrueView5725_5)/2;

        for(i=0;i<num;i++)
        {

        sccb_senddata(TrueView5725_5[0],TrueView5725_5[1],addr);
        }


        val=sccb_receivedata(0xf0,addr);
       
        val=sccb_receivedata(0x20,addr);
                 
        val=val;

        return rs;

}
这个项目在现在已经已经是相当淘汰的方案了,但是当时完成后,我也是相当满意。

④分享首次使用STM32软件的感受: 在开始学习stm32时,一般是直接调用标准库,但是后来意法半导体出了stm32cubemx的软件后,发现程序开发的通用性高了很多。因为我在一个项目中切换芯片,不用重新再网上下载对应库文件,和比较不同系列芯片的差异,只需要在本来做好的cubemx工程中修改相应的芯片,在重新生成便可以直接编译出新的执行文件,并且stm32cubemx提供官方库文件和像freertos等第三方库文件也是生成即可使用,不用重新移植。当然在当时的stm32cubemx也有挺多问题,主要是HAL库效率比较低。但是随着芯片的性能越来越高,还有LL库和HAL库的互相补充。使得stm32cubemx的应用越来越多。



恭喜STM32出货150亿颗,用STM32芯片的人越来越多,软件生态越来越来完善,STM32在中国的发展越来越好。

思维浪花 回答时间:2026-1-14 14:23:26

🎉 恭喜 STM32 全球出货突破 150 亿颗!用芯成就创新,以生态赋能未来!

myxiexing 回答时间:2026-1-14 15:24:58

恭喜STM32出货150亿颗。主要还是有中文资料,对中国用户比较友好。 同时开源的项目多,易上手。当然也离不开ST官方丰富的开源资料和培训资料。

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版