返回列表 发新帖我要提问本帖赏金: 20.00元(功能说明)

来自chat gpt对新手的答疑解惑

[复制链接]
1207|3
 楼主| 王小琪 发表于 2023-3-6 22:13 | 显示全部楼层 |阅读模式
本帖最后由 王小琪 于 2023-3-6 22:27 编辑

什么叫新手,通常会很迷茫,我从哪里来,要到哪里去。下面我整理了一些来自遥远的chat gpt的一些回答,希望可以帮助大家解决一定的疑问。
问题如下:
1、如何学习C语言
2、能否推荐几本学习C语言的书籍
3、用C语言代码点亮一个LED
4、使用STM32单片机点亮一个LED
5、如何学习STM32
6、推荐下学习单片机的路径
7、如何学习模电
8、如何学习数电
9、推荐几本学习模电的书籍
10、推荐基本学习数电的书籍

1、如何学习C语言

2、能否推荐几本学习C语言的书籍

3、用C语言代码点亮一个LED

4、使用STM32单片机点亮一个LED

5、如何学习STM32

6、推荐下学习单片机的路径

7、如何学习模电

8、如何学习数电

9、推荐几本学习模电的书籍

10、推荐基本学习数电的书籍


说一下我的整个使用感受
1、整个测试下来,有一定的错误的辩识率,譬如我把“几本”打成“基本”,它也能读懂我的意思。
2、很多答案可以说是正确的废话,但是对于初学者来说,不正需要这些基础的正确的答案来打好基础吗,我可以说,这里的回答比所有论坛上80%的答案都要优秀,可以说是升级的百度,至少你不用画那么多时间去辨别哪些是粪坑,哪些是金子。这不禁让我更加期待百度本月16号推出的文心一言,毕竟更适合国人的风格。
3、竟然可以写代码,虽然只是一个简单的点灯的程序,但arduino和STM32的都写出来了,据说chat gpt代码水平都达到了谷歌中级工程师的水平,我等这种渣渣工程师顿感压力山大。
4、很大程度上你能收到什么回答,取决于你的提问方式,明确的有目的性的优秀的问题,也会得到更加优秀的回答。我提的几个问题,只能说非常初级,提的不够聪明。归根结底chat gpt只是一个工具,就好像同样是百度,有的人就可以搜到想要的任何信息,有的人只能被骗,道理是一样的。
总而言之,之前就对chat gpt很感兴趣,今天试了一下,感觉还是很不错的,大家也可以在楼下留言,如果有遇到有趣的问题,也可以看看会收获到什么有趣的答案。













本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 王小琪 发表于 2023-3-6 22:24 | 显示全部楼层
本帖最后由 王小琪 于 2023-3-6 22:26 编辑

这是我要的一个iic例程
  1. 以下是一个IIC通信的C语言例程,用于在STM32F103C8T6开发板上通过IIC总线读取温度传感器的数据:

  2. #include "stm32f10x.h"

  3. #define I2C_SPEED 100000 // I2C总线速度为100kHz
  4. #define I2C_TIMEOUT 10000 // I2C操作超时时间为10ms

  5. #define TEMP_SENSOR_ADDR 0x48 // 温度传感器的I2C地址为0x48

  6. void I2C1_Init(void);
  7. void I2C1_Start(void);
  8. void I2C1_Stop(void);
  9. void I2C1_WriteByte(uint8_t data);
  10. uint8_t I2C1_ReadByte(uint8_t ack);
  11. uint8_t I2C1_ReadRegister(uint8_t reg);

  12. int main(void)
  13. {
  14.   uint8_t temp;

  15.   I2C1_Init(); // 初始化I2C1

  16.   temp = I2C1_ReadRegister(0x00); // 读取温度传感器的寄存器0x00的值
  17.   // 处理温度值

  18.   while (1)
  19.   {
  20.     // 循环读取温度传感器的数据
  21.   }
  22. }

  23. void I2C1_Init(void)
  24. {
  25.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE); // 使能I2C1时钟
  26.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 使能GPIOB时钟

  27.   GPIO_InitTypeDef GPIO_InitStructure;
  28.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
  29.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
  30.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  31.   GPIO_Init(GPIOB, &GPIO_InitStructure); // 配置GPIOB6和GPIOB7为开漏输出,复用功能,速度为50MHz

  32.   I2C_InitTypeDef I2C_InitStructure;
  33.   I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
  34.   I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
  35.   I2C_InitStructure.I2C_OwnAddress1 = 0x00;
  36.   I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
  37.   I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
  38.   I2C_InitStructure.I2C_ClockSpeed = I2C_SPEED;
  39.   I2C_Init(I2C1, &I2C_InitStructure); // 配置I2C1

  40.   I2C_Cmd(I2C1, ENABLE); // 使能I2C1
  41. }

  42. void I2C1_Start(void)
  43. {
  44.   I2C_GenerateSTART(I2C1, ENABLE); // 产生I2C起始信号
  45.   while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT)); // 等待I2C事件发生
  46. }

  47. void I2C1_Stop(void)
  48. {
  49.   I2C_GenerateSTOP(I2C1, ENABLE); // 产生I2C停止信号
  50.   while (I2C_GetFlagStatus(I2C1, I2C_FLAG_STOPF)); // 等待I2C停止信号发送完成
  51. }

  52. void I2C1_WriteByte(uint8_t data)
  53. {
  54.   I2C_SendData(I2C1, data); // 发送数据
  55.   while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED)); // 等待数据发送完成
  56. }

  57. uint8_t I2C1_ReadByte(uint8_t ack)
  58. {
  59.   if (ack)
  60.     I2C_AcknowledgeConfig(I2C1, ENABLE); // 使能应答
  61.   else
  62.     I2C_AcknowledgeConfig(I2C1, DISABLE); // 禁止应答

  63.   while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED)); // 等待数据接收完成

  64.   uint8_t data = I2C_ReceiveData(I2C1); // 读取数据

  65.   return data;
  66. }

  67. uint8_t I2C1_ReadRegister(uint8_t reg)
  68. {
  69.   I2C1_Start(); // 发送起始信号
  70.   I2C1_WriteByte(TEMP_SENSOR_ADDR << 1); // 发送从机地址
  71.   I2C1_WriteByte(reg); // 发送寄存器地址
  72.   I2C1_Start(); // 发送起始信号
  73.   I2C1_WriteByte((TEMP_SENSOR_ADDR << 1) | 0x01); // 发送从机地址,读取数据
  74.   uint8_t data = I2C1_ReadByte(0); // 读取数据,禁止应答
  75.   I2C1_Stop(); // 发送停止信号

  76.   return data;
  77. }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

打赏榜单

21ic小管家 打赏了 20.00 元 2023-04-17

cqb609902345 发表于 2023-3-14 18:33 | 显示全部楼层
总结的中肯,需要自行判断,确是不错的工具
Siderlee 发表于 2023-3-24 20:08 | 显示全部楼层
谭浩强 老师  怎么什么书都出
您需要登录后才可以回帖 登录 | 注册

本版积分规则

232

主题

585

帖子

7

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