STM32学习笔记:adc采样得到的电压值用485发送给pc
扫描二维码
随时随地手机看文章
采用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个字节)voidRS485_Send_Data(u8*buf,u8len){u8t;RS485_TX_EN(0);//设置为发送模式for(t=0;t附件:
http://download.csdn.net/detail/qq_33559992/9581825