本帖最后由 逗徐坤 于 2024-1-6 14:41 编辑

不知不觉已经到了龙年2024,来show一下我2023年双十一最贵战利品吧“中微BAT32A237-EVB”。
001.png

拿到板子别浪费,资料找一找,玩起来。
芯片数据手册,用户手册芯片固件库以及其他资料
https://www.mcu.com.cn/Products/317/pids/14.html
中微BAT32A237-EVB的原理图
https://www.mcu.com.cn/support-development/577.html
003.png
从上图可以看出,EVB采用的是板载仿真器与主控MCU设计在同一块板子上的布局方式,中间采用挖空的方式实现板载调试器可掰开单独使用的方案,这种可以让电路板充分被使用。主控为BAT32A237KH64FB,电路设计笔记哦奥简单,将所有IO都尽数引出,同时引出了LIN与CAN,可以看出,该芯片面向的应用大致是车规方面的了。硬件先分析到这儿,接下来说软件。
资料找到并下载好之后,就可以愉快的玩耍喽。看固件库以及提供的资料来说,是可以使用keil开发的,keil比较简单,这里keil的环境搭建就不过多介绍了。
最后的工程是这样(借用了官方的例程)。
002.png

通过上述的原理图可以看出,LED所引出的引脚为71与72,因此在LED初始化的地方,配置一下。
  1. void Led_Init(void)
  2. {
  3.     GPIO_InitTypeDef GPIO_InitStruct = {0};
  4.     GPIO_InitStruct.GPIO_Pin    = GPIO_Pin_1 | GPIO_Pin_2 ;
  5.     GPIO_InitStruct.GPIO_Mode   = GPIO_Mode_OUT;
  6.     GPIO_InitStruct.GPIO_Level  = GPIO_Level_HIGH;
  7.     GPIO_Init(GPIO_PORT7, &GPIO_InitStruct);
  8. }
最后主函数的代码结构如下:
  1. int main()
  2. {
  3.     uint32_t msCnt;     // count value of 1ms
  4.     //-----------------------------------------------------------------------
  5.     // Systick setting
  6.     //-----------------------------------------------------------------------
  7.     int len;
  8.     /*  Write C code in this online editor and run it. */
  9.     SystemCoreClockUpdate();
  10.     msCnt = SystemCoreClock / 1000;
  11.     SysTick_Config(msCnt);
  12.     delay_init(SystemCoreClock);

  13.     Led_Init();

  14.     while (1)
  15.     {
  16.         delayMS(500);
  17. //        LED_Toggle;
  18.         LED_ON;
  19.         LED1_ON;
  20.         delayMS(500);
  21.         LED_OFF;
  22.         LED1_OFF;
  23.     }
  24. }
其实看完代码结构,可以说是和我常用的ST的MCU代码结构差不多
直接选择CMSIS DAP,当出现ID的时候,就可以调试仿真了
最后烧录成功的状态如下图所示。
004.png

其实看完程序,可以说,中微的BAT32A237KH64FB还是比较容易开发的,而且确实官方介绍该芯片的时候,说大致应用场景是车规方面,主要是汽车氛围灯、汽车功能开关、汽车阅读灯等方案,不过我看这芯片引脚和功能都很丰富,所以做一些非车规方案产品估计也是没问题的。

最后,感谢面包板的给力双十一活动。新年快乐~