X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
RF/无线
[分享] 【MXCHIP Open1081】TCP+AD+18B20和一些问题
ljj3166
2014-11-30 14:40
楼主
上次使用了UDP发送数据到PC
这回试验了一下TCP,顺道驱动了一下18B20和一个AD通道
AD通道挂在Arduino接口的A0端
A0对应SOC芯片的54管脚,PA1管脚
这里One-Wire硬件上有个很奇怪的地方,没有上拉电阻
没记错的话,18B20数据手册要求是需要上拉的
难道是芯片GPIO配置了上拉?
看了一下驱动代码,好像真是这样
void Onewire_OUT_PULL_UP(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = DS18B20_Pin;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_25MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(DS18B20_Port, &GPIO_InitStructure);
}
void Onewire_OUT_FLOATING(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = DS18B20_Pin;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_25MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(DS18B20_Port, &GPIO_InitStructure);
}
void Onewire_IN_FLOATING(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = DS18B20_Pin;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_25MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(DS18B20_Port, &GPIO_InitStructure);
}
void Onewire_IN_PULL_UP(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = DS18B20_Pin;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_25MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(DS18B20_Port, &GPIO_InitStructure);
}
18B20的数据线都进行了内部上拉
不过听说,内部都是弱上拉呢,算不算个隐患呢?
也许这块片子例外吧
看看工程结构吧,直接把文件包含进来了
基本上就是这么些东西,下面进入问题时间
先帖代码,做了些基本的注释
回复可见,哇咔咔
TCP的代码和UDP稍有区别
引用:
游客,如果您要查看本帖隐藏内容请
回复
问题出现了
send函数,如果先发送字符串,再以变量的形式传递进去发送,然后再发送字符串。最后再以变量的形式传递进去发送
就会出现问题
譬如
send(clientfd, "Temperture&AD Value:", sizeof("Temperture&AD Value:"), 0);
send(clientfd, TMP_buff, TMP_str_len, 0);
send(clientfd, "&", sizeof("&"), 0);
send(clientfd, AD_buff, AD_str_len, 0);
send(clientfd, "\r\n", sizeof("\r\n"), 0);
这种排序方式,使得最后2句send(clientfd, AD_buff, AD_str_len, 0);和send(clientfd, "\r\n", sizeof("\r\n"), 0);无法发送。
看上去似乎是进行一次变量传递发送后,只能使用固定字符串形式发送了,再发送变量就没有效果了
很奇怪的一个问题
最后实在没办法,把温度变量、AD变量和固定字符串,用strcat函数全部链接到一个缓存里头,才能正常发送
不知道坛子里面有没有MXCHIP的大牛,求科普。
最后上个视频吧,呵呵
P.S. 代码复制进来,
都变成clientfd+斜体了,需要的同志自行补上吧
算不算论坛的bug?
@soso
本帖最后由 ljj3166 于 2014-11-30 14:57 编辑
So TM what......?
点赞
回复评论 (3)
沙发
ljj3166
庆科的函数库说明比较简略
有朋友手上有比较详细的说明吗
抛一个
So TM what......?
点赞
2014-11-30 14:45
板凳
木子鱼
回复看看哈
点赞
2014-12-4 20:55
4楼
908508455a
学习学习
点赞
2014-12-10 20:55
最新活动
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
随便看看
对于具有过流保护,自恢复功能的led电路的问题?
本周将开展PYB nano开发板的活动
关于DSP+FPGA系统 时钟问题
2007竞赛预测——基于UA741的开关电源
开始了
易燃易爆气体传感器问题求助
我见过讲Makefile最好中文文章
单片机I/O控制电源开断
EEWORLD大学堂----linux服务器架设
Fennel–用于Lua编程的Lisp语法
【LSM6DSOX有限状态机例程学习 一】--有限状态机及例程简介
威视锐ZYNQ开发板-ZingSK高清视频接口实例--HDMI
使用结构光的 3 D 扫描
100脚STM32+SRAM原理图和PCB,附FSMC驱动代码
msp430f4152定时器A的比较/捕获中断,模拟UART串口
Cypress:触摸屏将成为2010年市场热点
LPC1830 SWD無法燒錄
msp430 DCO外接电阻(ROSC)设置频率 无效 求助
STM32F4开发板录音实验喇叭一直叫
如何解决操作系统不能动态加载驱动程序的故障呢?
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复