[开发资料] 【Ubuntu VSCODE+GCC】CW32L031驱动sht30

[复制链接]
 楼主| lulugl 发表于 2023-6-28 17:29 | 显示全部楼层 |阅读模式
#申请原创# #有奖活动# @21小跑堂

【硬件工具】
1、CW32L031C8小蓝板
2、Sht30寸温湿度计
【编程环境】
1、ubuntu20
2、Vscode
【编译环境】
Arm-gcc
【下载调试】
Wch-link+pyocd+gdb
【实现步骤】
1、复制一份uart的工程到新的文件夹:
lugl@lugl-virtual-machine:~/CW32L$ sudo cp -r cw32l031_uart_iqr cw32l031_sht30
[sudo] lugl 的密码:
lugl@lugl-virtual-machine:~/CW32L$ ls
cw32l031_sht30       cw32l083_gcc      MRS_Toolchain_Linux_x64_V1.50.tar.xz
cw32l031_uart      cw32l083_gcc.zip
cw32l031_uart_iqr  MRS
2、修改文件夹读写权限:
lugl@lugl-virtual-machine:~/CW32L$ chmod 777 -R cw32l031_sht30
3、用vscode打开文件夹。在User目录下面新建sht30.c、sht30.h,myiic.h、myiic.c
dd2a78fc16c9e45172696daa300bedc3
4、这里的我们选用PB10、PB11为IIC的SCL与SDA,创建模拟的IIC。
5、创建sht30的命令发送与CRC程序。(代码见附件,如果发帖可以复制主要代码展示)
6、调整主程序代码如下:
  1. int main(void)

  2. {

  3. int t[6];

  4. uint16_t h[6];

  5. LED_Init();

  6. LogInit();

  7. SHT30_Init();

  8. USART_ITConfig(CW_UART1, USART_IT_RC, ENABLE);

  9. InitTick(24000000ul); //初始化SysTick

  10. // 开启两线调试接口

  11. RCC_SWDIO_Config(RCC_SYSCTRL_SWDIOEN);

  12. printf("start\r\n");

  13. while (1)

  14. {

  15. SHT30_Read_Humiture(t,h);

  16. printf("temp: %d.%d\r\n", t[0]/10, t[0]%10);

  17. printf("humi: %d.%d\r\n", h[0]/10, t[0]%10);

  18. GPIO_TogglePin(CW_GPIOC, GPIO_PIN_13);

  19. SysTickDelay(500);

  20. }

  21. return 0;

  22. }

编译并下载:
lugl@lugl-virtual-machine:~/CW32L/cw32l031_sht30/cw32l031_gcc$ make flash
-e Start pyOCD
0000822 I Loading /home/lugl/CW32L/cw32l031_sht30/cw32l031_gcc/build_exec/template.elf [load_cmd]
[==================================================] 100%
0002781 I Erased 0 bytes (0 sectors), programmed 0 bytes (0 pages), skipped 20480 bytes (40 pages) at 10.22 kB/s [loader]
实现的效果:
bf973c920e33b008b045ed854c2ca65d
附工程代码:
cw32l031_sht30.zip (765.31 KB, 下载次数: 3)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

180

主题

830

帖子

12

粉丝
快速回复 在线客服 返回列表 返回顶部

180

主题

830

帖子

12

粉丝
快速回复 在线客服 返回列表 返回顶部