jupyter notebook调用,也可以通过spyder窗口等IDE窗口.https://chat.forchange.cn/OpenAI帐号,并且在帐号内申请了api_key才行。jupyter notebook调用
text-davinci-003”:调用的模型GPT-30.8: 设定温度,系数越高,结果唯一性越强。import openai
openai.api_key = "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"
def completion(prompt):
completions = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
max_tokens=1024,
n=1,
stop=None,
temperature=0.8,
)
message = completions.choices[0].text
return message
print(completion("基于Keil生成一个8051单片机串口通讯的代码"))
需要实现的功能
1) 串口中断,当收到第一个字节的时候,接收,直到收到数据完成的标志,保存在数组中。
2) 开启接收中断,接收一个字节,当收到第一个字节的时候,接收,直到收到数据完成的标志,保存在数组中。
#### 代码实现
#include<reg52.h>
#define FOSC 11059200L
#define BAUD 9600
#define T1MS (65536-FOSC/12/BAUD)
#define N1 0x40
#define N2 0x00
#define BUFFER_SIZE 16
sbit LED = P1^1;
sbit rs = P3^6;
sbit rw = P3^7;
sbit en = P3^5;
sbit buzzer = P2^2;
unsigned char code table[]={
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46
};
void delay(int i)
{
while(i--);
}
void write_com(unsigned char com)
{
P0 = com;
rs = 0;
rw = 0;
en = 1;
delay(5);
en = 0;
}
void write_dat(unsigned char dat)
{
P0 = dat;
rs = 1;
rw = 0;
en = 1;
delay(5);
en = 0;
}
void init()
{
write_com(0x38);
write_com(0x01);
write_com(0x06);
write_com(0x0c);
write_com(0x0f);
}
void write_str(unsigned char y, unsigned char x, unsigned char *s)
{
unsigned char addr;
if(y == 1)
addr = 0x80 + x - 1;
else if(y == 2)
addr = 0xc0 + x - 1;
write_com(addr);
while(*s)
{
write_dat(*s);
s++;
}
}
void write_cmd(unsigned char y, unsigned char x)
{
unsigned char addr;
if(y == 1)
addr = 0x80 + x - 1;
else if(y == 2)
addr = 0xc0 + x - 1;
write_com(addr);
}
void lcd_pulse()
{
en=1;
delay(5);
en=0;
}
void write_com1(unsigned char command)
{
rs=0;
rw=0;
P0=command;
lcd_pulse();
}
void write_dat1(unsigned char dat)
{
rs=1;
rw=0;
P0=dat;
lcd_pulse();
}
void lcd_init()
{
write_com1(0x38);
write_com1(0x06);
write_com1(0x0c);
write_com1(0x01);
write_com1(0x80);
}
void write_char(unsigned char c)
{
write_dat1(c);
}
void write_string(unsigned char *s)
{
while(*s)
{
write_char(*s);
s++;
}
}
void timer0_init(void)
{
TMOD = 0x01;
TH0=T1MS;TL0=T1MS;
ET0=1;
EA=1;
TR0=1;
}
unsigned char hours;
unsigned char minutes;
unsigned char seconds;
unsigned char t;
unsigned char time_update;
unsigned char count;
unsigned char data[BUFFER_SIZE];
unsigned char *p;
void timer0_interrupt() interrupt 1//模拟中断,每1s中断一次
{
TH0=T1MS;TL0=T1MS;
write_cmd(1,1);
write_char(table[hours/10]);
write_char(table[hours%10]);
write_char(':');
write_char(table[minutes/10]);
write_char(table[minutes%10]);
write_char(':');
write_char(table[seconds/10]);
write_char(table[seconds%10]);
seconds++;
time_update=1;
}
void timer1_init()
{
TH1=N1;TL1=N2;
ET1=1;
EA=1;
TR1=1;
}
void timer1_interrupt() interrupt 3
{
TH1=N1;TL1=N2;
if(seconds==60)
{
seconds=0;
minutes++;
}
if(minutes==60)
{
minutes=0;
hours++;
}
if(hours==24)
hours=0;
}
void init_serial()
{
TMOD=0x20;
SCON=0x50;
TL1=N1;TH1=N2;
ES=1;
EA=1;
TR1=1;
count=0;
p=data;
}
void serial_interrupt(void) interrupt 4
{
if(TI==1)
{
TI=0;
count=0;
p=data;
}
else
{
SBUF=0x41+count;
count++;
if(count==BUFFER_SIZE)
{
count=0;
p=data;
}
else
p++;
RI=0;
}
}
void main()
{
write_cmd(1,1);
write_str(2,1," TEMPERATURE ");
timer1_init();
timer0_init();
lcd_init();
init_serial();
while(1)
{
if(count==BUFFER_SIZE)
{
write_cmd(1,1);
write_str(2,1," TEMPERATURE ");
write_str(1,9,p);
write_str(2,9,p+8);
}
}
}

# -*- coding: utf-8 -*-
"""
Spyder Editor
This is a temporary script file.
"""
import openai
openai.api_key = "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"
def completion(prompt):
completions = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
max_tokens=1024,
n=1,
stop=None,
temperature=0.8,
)
message = completions.choices[0].text
return message
print(completion("stm32f103vct6串口1初始化代码"))
stm32f103vct6串口1初始化代码返回数据:波特率为115200
//串口初始化函数
//bound:波特率
void uart1_init(u32 bound)
{
//GPIO端口设置
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE); //使能USART1,GPIOA,AFIO时钟
GPIO_PinRemapConfig(GPIO_Remap_USART1, DISABLE); //取消复用
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.09
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PA9
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化PA10
//Usart1 NVIC 配置
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//串口1中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器
//USART 初始化设置
USART_InitStructure.USART_BaudRate = bound;//串口设置波特率
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式
USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位
USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制
USART_InitStructure.USART_Mode = USART_Mode_Tx|USART_Mode_Rx; //收发模式
USART_Init(USART1, &USART_InitStructure); //初始化串口1
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断
USART_Cmd(USART1, ENABLE); //使能串口1
}
//串口1中断服务程序
//注意,读取USARTx->SR能避免莫名其妙的错误
void USART1_IRQHandler(void) //串口1中断服务程序
{
u8 Res;
#if SYSTEM_SUPPORT_OS //如果使用OS,由于串口接收中断优先级不能设置过高,因此当遇到串口错误时直接调用OS的相应服务
OSIntEnter();
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾)
{
#if EN_USART1_RX //如果使能接收
Res =USART_ReceiveData(USART1);//(USART1->DR); //读取接收到的数据
if((USART_RX_STA&0x8000)==0)//接收未完成
{
if(USART_RX_STA&0x4000)//接收到了0x0d
{
if(Res!=0x0a)USART_RX_STA=0;//接收错误,重新开始
else USART_RX_STA|=0x8000; //接收完成了
}
else //还没收到0X0D
{
if(Res==0x0d)USART_RX_STA|=0x4000;
else
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
USART_RX_STA++;
if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收
}
}
}
if(USART_RX_STA&0x8000)//接收完成
{
USART_RX_BUF[USART_RX_STA&0X3FFF]=0;//添加结束符
memcpy(USART_TX_BUF,USART_RX_BUF,USART_REC_LEN);
USART_RX_STA=0;//接收状态标记清零
}
#endif
}
else if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET) //发送中断
{
#if EN_USART1_TX //如果使能了接收
USART1->DR = Tx1Buffer[Tx1Counter++]; //写DR寄存器数据发送
if(Tx1Counter == Tx1Count){
USART1->CR1 &= ~USART_CR1_TXEIE; //关闭TX发送中断
}
#endif
}
print(completion("stm32f103vct6串口1初始化代码"))
,总线资源申请好后,调用这个函数初始化
return 0;
}
//不使用串口,释放资源
static void __exit uart_exit(void)
{
//释放设备号
unregister_chrdev(dev_no,DEV_NAME);
//释放设备结构体
cdev_del(&uart_cdev);
//删除设备类
device_destroy(uart_class,MKDEV(dev_no,0));
//释放设备类
class_destroy(uart_class);
//释放资源
//1.释放硬件资源:释放ioremap的空间
iounmap(va);
//2.释放设备号
release_region(0x40011000,0x400);
}
module_init(uart_init);
module_exit(uart_exit);
MODULE_LICENSE("GPL");
🍁以上不管那种方式调用,都需要提前安装好
openai模块
pip install openai
pip install jupyter
jupyter notebookpip install spyder
spyder关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我正在使用puppet为ruby程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这
我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
我在理解Enumerator.new方法的工作原理时遇到了一些困难。假设文档中的示例:fib=Enumerator.newdo|y|a=b=1loopdoy[1,1,2,3,5,8,13,21,34,55]循环中断条件在哪里,它如何知道循环应该迭代多少次(因为它没有任何明确的中断条件并且看起来像无限循环)? 最佳答案 Enumerator使用Fibers在内部。您的示例等效于:require'fiber'fiber=Fiber.newdoa=b=1loopdoFiber.yieldaa,b=b,a+bendend10.times.m
我正在尝试编写一个将文件上传到AWS并公开该文件的Ruby脚本。我做了以下事情:s3=Aws::S3::Resource.new(credentials:Aws::Credentials.new(KEY,SECRET),region:'us-west-2')obj=s3.bucket('stg-db').object('key')obj.upload_file(filename)这似乎工作正常,除了该文件不是公开可用的,而且我无法获得它的公共(public)URL。但是当我登录到S3时,我可以正常查看我的文件。为了使其公开可用,我将最后一行更改为obj.upload_file(file
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub