stm32f103rct6使用内部晶振作为时钟源

目录

  • 正点原子库函数
    • 1.void SystemInit(void)
    • 2.FLASH
    • 3.宏定义
    • 4.查看
    • 5.延时
    • 6.最终结果
    • 7.精准延时尝试(失败)
  • HAL库函数
    • 1 宏定义
    • 2 时钟配置
    • 3 main函数中调用
    • 4 例子代码
  • 寄存器版本(跑通串口)
    • 代码
    • 示波器查看波特率

正点原子库函数

stm32f103rct6(库函数版例程)使用内部晶振8M,倍频64M

参考
https://blog.csdn.net/oHuanCheng/article/details/105112884
http://www.openedv.com/forum.php?mod=viewthread&tid=286233
https://blog.csdn.net/ll148305879/article/details/106138302

1.void SystemInit(void)

修改system_stm32f10x.c文件中的void SystemInit(void)函数

void SystemInit(void)  //mychange
{  /* Enable Prefetch Buffer */FLASH->ACR |= FLASH_ACR_PRFTBE;/* Flash 2 wait state */FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2;RCC_DeInit(); //set RCC to initializationRCC_HSICmd(ENABLE);//Enable HSI  while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);//wait HSI enable//FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//FLASH_SetLatency(FLASH_Latency_2);RCC_HCLKConfig(RCC_SYSCLK_Div1);RCC_PCLK1Config(RCC_HCLK_Div2);RCC_PCLK2Config(RCC_HCLK_Div1);// Set PLL clock source and frequency doubling coefficientRCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_16);//4*16=64M  RCC_PLLMul_9 36MRCC_PLLCmd(ENABLE);// Waiting for the specified RCC flag bit settings to succeed // and waiting for the PLL initialization to succeedwhile(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);//  Setting PLL as System Clock SourceRCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//Waiting for PLL to be successfully used as clock source for system clock//  0x00:HSI //  0x04:HSE//  0x08:PLLwhile(RCC_GetSYSCLKSource() != 0x08);
} 

2.FLASH

内部时钟用到了FLASH,需要添加stm32f10x_flash.c
在这里插入图片描述

3.宏定义

将宏定义注释
system_stm32f10x.c
在这里插入图片描述

4.查看

配置后的时钟频率
main.c

int main(void)
{RCC_ClocksTypeDef  RCC_Clocks; //初始化时钟频率结构体RCC_GetClocksFreq(&RCC_Clocks); //获取各个时钟频率while(1){printf("SYSCLK_Frequency %d \r\n",RCC_Clocks.SYSCLK_Frequency);//串口输出主频delay_ms(1000);//延迟1s} 
}

5.延时

设置延时函数
参考https://blog.csdn.net/sky_Buddha/article/details/106093426
delay.c中

void delay_us(u32 nus)
{u16 i=0;  while(nus--){i=7;  while(i--) ;    }
}
void delay_ms(u16 nms)
{u16 i=0;  while(nms--){i=7000;  while(i--) ;    }}

6.最终结果

(虽然这样时间不是很准,但都使用内部晶振了,谁会在意精度呢?)
在这里插入图片描述

7.精准延时尝试(失败)

没来得及看的参考链接https://blog.csdn.net/qq_20222919/article/details/103820476
精准延时的一些尝试,但是失败。参考https://blog.csdn.net/coderdd/article/details/97612514

失败的尝试如下:
直接操作寄存器,查看手册说明:
SysTick->CTRL&=0xfffffffb;这一句把 SysTick 的时钟选择外部时钟,这里需要注意的是:
SysTick 的时钟源自 HCLK 的 8 分频,假设我们外部晶振为 8M,然后倍频到 72M,那么 SysTick
的时钟即为 9Mhz,也就是 SysTick 的计数器 VAL 每减 1,就代表时间过了 1/9us。所以fac_us应该就是72M/8000000=9。

fac_us=SystemCoreClock/8000000;				//ΪϵͳʱÖÓµÄ1/8  

在这里插入图片描述

//延时 nus
//nus 为要延时的 us 数. 
void delay_us(u32 nus)
{
u32 temp;
SysTick->LOAD=nus*fac_us; //时间加载 
SysTick->VAL=0x00; //清空计数器
SysTick->CTRL=0x01 ; //开始倒数
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16)));//等待时间到达 
SysTick->CTRL=0x00; //关闭计数器
SysTick->VAL =0X00; //清空计数器
}
//延时 nms
//注意 nms 的范围
//SysTick->LOAD 为 24 位寄存器,所以,最大延时为:
//nms<=0xffffff*8*1000/SYSCLK
//SYSCLK 单位为 Hz,nms 单位为 ms
//对 72M 条件下,nms<=1864 
void delay_ms(u16 nms)
{ 
u32 temp; 
SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD 为 24bit)
SysTick->VAL =0x00; //清空计数器
SysTick->CTRL=0x01 ; //开始倒数 
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16)));//等待时间到达 
SysTick->CTRL=0x00; //关闭计数器
SysTick->VAL =0X00; //清空计数器 
}

虽然没找到内核时钟是多少,但应该是8M,就是 SysTick 的计数器 VAL 每减 1,就代表时间过了 1/8us,所以fac_us=8。
使用内核时钟,即
SysTick->CTRL=0x05 ; //开始倒数 0000 0101
SysTick->CTRL=0x04; //关闭计数器0000 0100
在这里插入图片描述

//延时 nus
//nus 为要延时的 us 数. 
void delay_us(u32 nus)
{
u32 temp;
SysTick->LOAD=nus*8; //时间加载 
SysTick->VAL=0x00; //清空计数器
SysTick->CTRL=0x05 ; //开始倒数
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16)));//等待时间到达 
SysTick->CTRL=0x04; //关闭计数器
SysTick->VAL =0X00; //清空计数器
}
//延时 nms
//注意 nms 的范围
//SysTick->LOAD 为 24 位寄存器,所以,最大延时为:
//nms<=0xffffff*8*1000/SYSCLK
//SYSCLK 单位为 Hz,nms 单位为 ms
//对 72M 条件下,nms<=1864 
void delay_ms(u16 nms)
{ 
u32 temp; 
SysTick->LOAD=(u32)nms*8000;//时间加载(SysTick->LOAD 为 24bit)
SysTick->VAL =0x00; //清空计数器
SysTick->CTRL=0x05 ; //开始倒数 
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16)));//等待时间到达 
SysTick->CTRL=0x04; //关闭计数器
SysTick->VAL =0X00; //清空计数器 
}

但是,还是失败了,不知道问题出在哪,有大神知道的可以在评论区指导一下!!!

HAL库函数

官方用的HAL库函数,所以直接问ChatGPT就行
在这里插入图片描述

1 宏定义

在stm32f1xx_hal_conf.h文件中,将HSE_VALUE宏定义的值设置为0,表示不使用外部晶振。

/* #define HSE_VALUE    ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */
#define HSE_VALUE    ((uint32_t)0U) /*!< Value of the External oscillator in Hz */

在这里插入图片描述

2 时钟配置

在主函数中,使用RCC_ClkInitTypeDef结构体进行时钟配置,将AHB、APB1和APB2总线的分频系数都设置为1,以确保这些总线的时钟与系统时钟同步。代码如下:

#include "main.h"/* Private variables ---------------------------------------------------------*//* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);/* Private functions ---------------------------------------------------------*//*** @brief  The application entry point.* @retval int*/
int main(void)
{/* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* Configure the system clock */SystemClock_Config();/* Infinite loop */while (1){}
}/*** @brief System Clock Configuration* @retval None*/
void SystemClock_Config(void)
{RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};RCC_OscInitTypeDef RCC_OscInitStruct = {0};/* Initializes the CPU, AHB and APB buses clocks */RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;RCC_OscInitStruct.HSIState = RCC_HSI_ON;RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL16;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){Error_Handler();}/* Initializes the CPU, AHB and APB buses clocks */RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK){Error_Handler();}
}

在上述代码中,将RCC_OscInitStruct结构体中的OscillatorType设置为RCC_OSCILLATORTYPE_HSI,表示使用HSI内部晶振。将RCC_OscInitStruct结构体中的HSIState设置为RCC_HSI_ON,表示开启HSI内部晶振。将RCC_OscInitStruct结构体中的PLLClockSource设置为RCC_PLLSOURCE_HSI_DIV2,表示使用HSI内部晶振除以2作为PLL的时钟源。将RCC_OscInitStruct结构体中的PLLCMUL设置为RCC_PLL_MUL16,表示将HSI内部晶振倍频16倍作为PLL的输出时钟,最终的系统时钟频率为64MHz。在RCC_ClkInitStruct结构体中,将SYSCLKSource设置为RCC_SYSCLKSOURCE_PLLCLK,表示将PLL输出的时钟作为系统时钟源。将AHBCLKDivider、APB1CLKDivider和APB2CLKDivider都设置为RCC_SYSCLK_DIV1,表示不分频,保持与系统时钟同步。

3 main函数中调用

在main函数中调用HAL_RCC_OscConfig和HAL_RCC_ClockConfig函数进行时钟初始化,如上所示。

4 例子代码

下面是一个简单的例子代码,演示了如何在使用STM32F103RCT6内部晶振的情况下进行时钟初始化,并在进入while循环前延时50ms等待外设初始化完成,然后向串口一打印最终的系统时钟频率:

#include "stm32f1xx_hal.h"
#include "stdio.h"void SystemClock_Config(void);int main(void)
{/* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* Configure the system clock */SystemClock_Config();/* Wait for external peripherals to initialize */HAL_Delay(50);/* Infinite loop */while (1){/* Print system clock frequency to USART1 */printf("System clock frequency: %dHz\n", (int)HAL_RCC_GetSysClockFreq());HAL_Delay(1000);}
}void SystemClock_Config(void)
{RCC_OscInitTypeDef RCC_OscInitStruct = {0};RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};/* Configure the internal oscillator */RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;RCC_OscInitStruct.HSIState = RCC_HSI_ON;RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){Error_Handler();}/* Configure the PLL */RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK){Error_Handler();}
}

在该代码中,首先使用HAL_RCC_OscConfig函数将HSI内部晶振配置为系统时钟源。然后使用HAL_RCC_ClockConfig函数将PLL配置为使用HSI作为输入时钟源,输出时钟频率为64MHz,并将其作为系统时钟源。在进入while循环前延时50ms,等待外设初始化完成。在while循环中,使用printf函数向串口一打印最终的系统时钟频率,并使用HAL_Delay函数延时1秒。

注意,在使用printf函数打印时钟频率之前,需要在代码中配置USART1,并使用HAL_UART_Init函数进行初始化。

本人Error_Handler();会报错,注释掉就能跑通,实验可行。

寄存器版本(跑通串口)

之前的版本,跑在mini板子上是没问题,显示的系统频率是64MHz,但到了自己做的板子上烧录,发现串口通信显示乱码,gg!
经排查,是通信时钟的问题,想把寄存器版本中的串口初始化函数(应为可以直接设置频率)移植到HAL版本中,失败,无奈只能再战寄存器版本。

//pclk2:PCLK2 时钟频率(Mhz)
//bound:波特率
void uart_init(u32 pclk2,u32 bound)

在这里插入图片描述

代码

问下ChatGPT,只要加一个函数直接跑通。
在这里插入图片描述

#include "sys.h"
#include "usart.h"		
#include "delay.h"	
#include "24cxx.h" 
#include <string.h>void SystemInit(void)
{// 选择 HSI 作为系统时钟源RCC->CFGR &= ~(RCC_CFGR_SW);RCC->CFGR |= RCC_CFGR_SW_HSI;// 等待 HSI 稳定while((RCC->CR & RCC_CR_HSIRDY) == 0);// 配置 PLLRCC->CFGR &= ~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL);RCC->CFGR |= RCC_CFGR_PLLSRC_HSI_Div2 | RCC_CFGR_PLLMULL16;// 启用 PLLRCC->CR |= RCC_CR_PLLON;// 等待 PLL 启动完成while((RCC->CR & RCC_CR_PLLRDY) == 0);// 设置 FLASH 读取延迟FLASH->ACR |= FLASH_ACR_LATENCY_2;// 设置系统时钟源为 PLLRCC->CFGR &= ~(RCC_CFGR_SW);RCC->CFGR |= RCC_CFGR_SW_PLL;// 等待 PLL 作为系统时钟源设置成功while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL);// 设置 APB1 时钟为 HCLK/2RCC->CFGR &= ~(RCC_CFGR_PPRE1);RCC->CFGR |= RCC_CFGR_PPRE1_DIV2;// 设置系统时钟频率为 64MHzRCC->CFGR &= ~(RCC_CFGR_HPRE);RCC->CFGR |= RCC_CFGR_HPRE_DIV1;// 打开 GPIOC 时钟RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
}int main(void)
{		uint32_t sysClockFreq = SystemCoreClock;char buf[32];int len,i;SystemInit();	//ϵͳʱÖÓÉèÖÃdelay_init(64);	   	 	//ÑÓʱ³õʼ»¯ delay_ms(10);uart_init(64,9600);	 	//´®¿Ú³õʼ»¯Îª9600 7246AT24CXX_Init();			//IIC³õʼ»¯ delay_ms(10);while(1){sprintf(buf, "System clock frequency:  Hz\r\n");len = strlen(buf);for( i = 0; i < len; i++){USART1->DR = buf[i]; // ???????while(!(USART1->SR & USART_SR_TXE)); // ??????}delay_ms(500); // ??1?//USART1->DR = 0x55;}
}

在 SystemInit() 函数中配置 RCC 寄存器,以选择内部时钟源并设置系统时钟频率为 64MHz。
在上述代码中,我们使用 HSI 作为系统时钟源,并使用 PLL 将时钟频率提高到 64MHz。我们还设置了FLASH读取延迟以确保在高频率下稳定工作,并将APB1时钟设置为HCLK / 2。最后,我们打开了 GPIOC 时钟。

示波器查看波特率

还是乱码,没办法,直接上示波器。
参考https://blog.csdn.net/ybhuangfugui/article/details/120480189
https://blog.csdn.net/Old_Street/article/details/127454235
在主函数一直发数据:0x55

	while(1){USART1->DR = 0x55;}

在这里插入图片描述
在这里插入图片描述
终于成了,虽然没有改到9600,但实在不想改了,就这样吧。
(另提一句,hal版本改为7246也没有乱码了,说明hal设置波特率的时候确实是按64M来算)
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26665.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Esight | 类比ChatGPT的AI助理

很多行业内的小伙伴都在使用我们的低功耗分析设备mPower1203&#xff0c;它为大家在产品功耗的分析评估和优化上提供了很大的帮助&#xff0c;也为产品的工厂自动化提供了便捷的应用。为了更好的服务于研发工程师&#xff0c;配套的上位机工具Esight集成了ChatGPT【AI助理】的功…

0101壳-手写springboot-springboot系列

文章目录 1 前言1 创建我们自己的pringboot模块1.1 引入相关依赖1.1 启动类注解1.2 启动类 2 测试模块3 启动测试结语 1 前言 springboot有以下作用&#xff1a; 简化配置&#xff1a;Spring Boot提供了一组预定义的自动配置选项&#xff0c;可以快速地配置应用程序&#xff…

网络:chrome抓包

Network面板 按F12或者CTRLSHIFTI就可以召唤出这个面板 控制器&#xff1a;控制面板的外观和功能过滤器&#xff1a;过滤请求列表中显示的资源概览&#xff1a;显示HTTP请求、响应的时间轴请求列表&#xff1a;默认按照请求的先后时间排序&#xff0c;每选择一个请求还会跳出…

用ChatGPT高效学习:7天入门Python网络爬虫

以前不懂编程&#xff0c;但经常要从互联网上批量下载一些文件图片视频、收集整理数据等&#xff0c;手工操作耗时耗力。用ChatGPT入门了Python编程后&#xff0c;就寻思着可以再利用ChatGPT入门网络爬虫。 先让ChatGPT给我列出一个学习计划&#xff1a; 我有一些Python编程基…

Oracle 发力 MySQL,MariaDB 成功上市,大规模融资锐减 | 解读数据库的 2022

又一年过去了&#xff0c;生活还在继续&#xff0c;现在是反思去年数据库世界所发生事件的绝佳时机。 链接&#xff1a;https://ottertune.com/blog/2022-databases-retrospective/ 声明&#xff1a;本文为 CSDN 翻译&#xff0c;未经允许禁止转载。 作者 | Andy Pavlo 译者 | …

【GPT-4 ChatGPT】第 2 章 :深入了解GPT-4 和 ChatGPT API

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

Python基于Oxford-IIIT Pet Dataset实现宠物识别系统

先看效果&#xff1a; Oxford-IIIT Pet Dataset是一个不错的数据集&#xff0c;牛津官方整理出来的一个关于各种猫和狗的数据集&#xff0c;可以很方便被我们用来做图像识别或者是图像分割类型的任务&#xff0c;这里我们主要是做图像识别的应用。 官方介绍如下所示&#xff1a…

Python用户管理系统,宠物管理系统

用户管理系统 surface """ #三引号是Python的注释符号&#xff0c;但也可以作为字符串输出 **************************************** 用户管理系统 **************************************** 1、注册新用户 2、用户登录 3、用户注销 4、用户信息显示 5、退…

基于涂鸦智能的宠物喂食器

基于涂鸦智能的宠物喂食器 一、开发计划二、涂鸦三明治开发套件涂鸦三明治 Wi-Fi MCU 通信板喇叭涂鸦三明治H桥直流电机驱动功能板涂鸦三明治直流供电电源板MCU主控板 三、产品开发1、产品创建进入涂鸦IoT平台创建产品选择对应的功能点和设备面板下载SDK 2、MCU SDK移植对串口寄…

宠物领养平台的分析与实现

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 文末获取源码 项目编号:BS-PT-052 运行环…

智能宠物项圈app开发解决方案

智能宠物项圈app开发解决方案&#xff0c;今天主要介绍的就是智能宠物项圈app开发方案中的功能。它的功能主要有多重定位&#xff0c;实时定位、出入范围提醒&#xff0c;踪迹随时可寻、远程呼唤、电子围栏、活动监测等&#xff0c;接下来我就来全面的介绍一下。 智能宠物项圈a…

宠物店会员管理系统| 宠物店小程序

国内养宠家庭非常多&#xff0c;推动着国内宠物市场发展&#xff0c;而围绕宠物的细分行业&#xff0c;如宠物食品、宠物用品/医疗/美容/婚介/殡葬等&#xff0c;2019年我国宠物市场规模达2024亿元&#xff0c;预计2023年&#xff0c;市场规模将突破4000亿元左右。 未来的宠物市…

智能宠物饲养系统设计

word完整版可点击如下下载>>>>>>>> 智能宠物饲养系统设计.rar-其它文档类资源-CSDN下载1、资源内容&#xff1a;毕业设计lun-wenword版10000字&#xff1b;开题报告&#xff0c;任务书2、学习目标&#xff1a;快速更多下载资源、学习资料请访问CSDN下…

宠物服务App功能简介

随着时代的变革与发展人们的生活变得越来越好&#xff0c;也变的越来越多样化。物质生活的满足后&#xff0c;人们开始找寻其他的一些兴趣爱好&#xff0c;让自己的生活变的更加多彩&#xff0c;有人种花、有人养鸟、有人养猫、有人养狗等等。不管是养什么都是需要细心照顾才能…

线上宠物领养系统

实现功能 客户端&#xff1a;客户可以查询数据库的宠物信息并根据查询的宠物信息选择自己喜欢的宠物进行领养。 服务器&#xff1a;服务器实现了对管理员相关信息的保存&#xff0c;管理员必须输入正确的用户名和密码才能对数据库信息进行增删改查等操作。服务器也可以直接对数…

软件官网页面模板

此项目由Htmlcss结构搭建而成 里面自适应移动端而做出调整 上代码: 使用了该模板的请将出处表明 项目结构 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" conte…

(学习笔记)使用CHATGPT写的前端页面模板

一、学生管理系统的登录页面 写一个好看的学生管理系统的登录页面&#xff0c;学生使用用户名和密码进行登录 <!DOCTYPE html> <html> <head><title>Student Management System - Login</title><style>body {font-family: Arial, sans-s…

如何将ChatGPT用到Facebook的文案生产中?

ChatGPT 是一款由 OpenAI 所开发的大型语言模型&#xff0c;它可以生成高质量、自然流畅的文本&#xff0c;具有很强的语言理解和生成能力。这使得它成为了一个非常有用的工具&#xff0c;可以应用于许多领域中&#xff0c;包括文案生产。 Facebook 是全球最大的社交媒体平台之…

转载。1AGI 14个关键问题

信息爆炸的 10 篇 AGI 访谈&#xff0c;我们从中整理了 14 个关键问题 原创 Founder Park Founder Park 2023-04-16 19:00 发表于北京 自从 GPT-4 发布以来&#xff0c;媒体高度关注 OpenAI 和其内外部相关人士&#xff0c;重要角色的视频、播客和文章访谈频频出现。为了节省…

下一个“AI王炸”,别只盯着OpenAI,DeepMind也在憋大招

过去几个月&#xff0c;OpenAI风头无两&#xff0c;各大科技公司争先恐后地跟进大语言模型&#xff08;LLM&#xff09;这一技术路线。 对比之下&#xff0c;OpenAI的老对手DeepMind&#xff0c;显得有些低调和沉默。微软靠OpenAI打了一场胜仗&#xff0c;而谷歌推出的Bard翻了…