×
单片机 > 单片机程序设计 > 详情

STM32学习笔记:adc采样得到的电压值用485发送给pc

发布时间:2020-08-27 发布时间:
|

采用adc1的通道10,将采集到的电压值用485发送给PC显示, 
先上原理图, 
 
 
源代码见附件, 
这里想说的是几个要注意的问题: 
1,ad输入的电压经过了R42和R44进行分压,所以pc显示的电压值将会减半, 
2、采用这个函数进行发送数据的时候,每次都是发送一个8位的数据(即一个字节),也就是最大值为256,。超过1个字节默认发送地位,即你要发送的数据位0x0145,只会发送45,具体可以参考数据手册,下图,

USART_SendData(USART3,ADC_Value_B);1

 
3,pc 机上收集到的数据,如果没有勾选“以HEX显示”则显示的是acsii码,而我们发送数据给PC机发送的则是hex,所以这里要进行一次转换。HEX–>ascii 
4、控制485的发送和接收的引脚是TR485-U3–>PB12, 通过光耦隔离芯片,接到了485的RE’和DE上,由光耦可知,PB12=1,光耦中的1,2脚不导通,没有光发射到3,4引脚,RE’/DE输出为低电压,也就是RE’有效,接收数据。反之,PB12 = 0,发送数据。

//RS485发送len个字节.//buf:发送区首地址//len:发送的字节数(为了和本代码的接收匹配,这里建议不要超过64个字节)void RS485_Send_Data(u8 *buf,u8 len){
    u8 t;    RS485_TX_EN(0);         //设置为发送模式
    for(t=0;t

附件: 





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机中断源的扩展方法