# NetLocaterWriter **Repository Path**: EmbededMind/NetLocaterWriter ## Basic Information - **Project Name**: NetLocaterWriter - **Description**: 网位仪写码器的程序。 检测Rx、Tx,然后用IO模拟串口。 - **Primary Language**: C - **License**: WTFPL - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2017-03-09 - **Last Updated**: 2023-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #NetLocaterWriter v1.1.0 2017.3.9 修正了模拟串口拦截特定ASCII数据的Bug。该Bug会导致经过写码器的0x0a 和 0x0d会被忽略。 工程目录为: .git CORE HARDWARE STM32F10x_FWLib SYSTEM USER v1.0.0 2016.4.6 写码器模拟串口: 模拟串口发送:(9600)模拟时序 1:(起始位)拉低发送引脚,延迟104us 2:八位数据为:判断相应的位的数据来拉高或拉低发送引脚的电平,每次延迟104us 3:结束位:拉高发送引脚,延迟104us 模拟串口接收:采用外部中断采集电平 程序: 初始化配置: 读取FLASH: 获取SerialPinSel的值 当SerialPinSel=0 时:PA2配置为TX, PA3配置为RX, 配置PA3为外部中断触发引脚 当SerialPinSel=1时,反正。配置PA2为外部中断触发引脚 串口1配置:波特率9600,与PC数据交换接口 定时器2:判断模拟串口是否接收完数据 ,时间5ms 定位器3: 判断是否收到打开串口命令的回复,时间5ms 串口1接收来自PC的传来的18个字节的BUF,然后判断命令,如果为打开串口(0x17)的命令,模拟串将18个字节的BUF发给网位仪,然后使能定时器3。 如果模拟串口的中断触发,代表收到网位仪发来的命令,说明模拟串口配置的RX和TX脚的顺序为正确,然后关闭定时器3,然后使能定时器 2(判断串口接收结束),在定时器2中断中将接收到的BUF由USART1发给PC。 如果定时器3中断触发,则代表未收到网位仪的回复命令,然后将RT引脚的配置互换,并更改外部中断脚的触发,然后再发一遍命令给网位仪,直到网位仪有回复为止。 串口发送时关闭接收的中断线,防止发送数据干扰 定时器3 :发送打开串口命令是启用,溢出时间1s ,判断串口RX。TX是否正确.