DAYANG
获得 8 次赞
帮助过19人
FLL/WROBotballWERRobocup JuniorVEX IQ 挑战/VEX Robotics竞赛 挑战路径:区域赛 -- 国赛 -- 亚洲锦标赛 -- 世界锦标赛机器人灭火竞赛
#include <reg52.h>#include <intrins.h>unsigned char tint;unsigned char tflo;//简单延时函数void delay(unsigned int n){ unsigned char x; while (n--) { x = 30; while (x--); }}//串口初始化函数 ////9600,N,8,1 ////T1做波特率发生器//void InitUart(void){ TMOD &= 0x0f; TMOD |= 0x20; TH1=0xfd; TL1=0xfd; SCON=0x50; PCON &= 0x7F; //设置SMODE为0 ES=0; TR1 = 1; }void Sendone(unsigned char dat){ ES=0; //TI = 0; //清零发送中断标志 SBUF = dat; while(!TI); //等待发送完成 TI=0; }//发送回车换行符void SendLineEnd(void) { Sendone(0x0D); Sendone(0x0A);}//主函数void main(void) { tint=0;tflo=0; InitUart();while(1) { //取温度并发送到串口 get_ds18b20(); //从DS18B20读取温度,具体读取函数略,可查其他资料 //假定温度值整数放在变量tint,小数放在变量tflo里 //发送 Sendone('0'+tint); //发送整数 Sendone('.'); //发送小数点 Sendone('0'+tflo); //发送小数 SendLineEnd(); //发送回车换行符 delay(60000); //适当延时以免发送数据过量 //连接好电脑和单片机,打开串口调试助手,设置串口参数为“9600,N,8,1”,可以看到发送的数据 } }
看个人情况,如果你最底层的代码就不清楚的话选用再怎么强大的单片机也没用,现在stm32几乎已经成为一种主流,学习的人多,网上案例也多,你可以试着用一下
万事开头难,我建议你看了一段时间的书以后,对dsp的硬件有些了解之后,然后对每个部分的寄存器有些了解之后,(其实dsp就是对寄存器去定义所以你可以从熟悉寄存器下手) 其次开始着手做实验,如果你是学生,就要珍惜在学校做实验的机会,用实验箱去认真做实验,分析里面的每个程序,怎么去初始化,怎么定义,建议你用c语言去编写,需要你去复习c里面的基本内容,特别是像结构体,共同体,函数的调用和使用等。做一个实验就把一个实验搞明白。通过理论和实验结合学起来比较快,只看书是不行的。 如果你是工作了,没有做实验的条件的话,建议你去买个实验板子,可能五六百块钱,自己在家试一下,要是真的想学好就别怕花这几百块钱。 最后,世上无难事,只怕有心人,你专注的做一件事,及时停下来去反思,你会慢慢入门的。祝你好运