- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通用的IO模擬串口程序
通用的I/O模拟串口程序 程序匠人 发表于 2006-3-14 23:43:00 ?阅读全文(2215) | 回复(0) | 引用通告(0) | 编辑 通用的I/O模拟串口程序(适用于任何带有定时器的单片机)
// UART.C//// Generic software uart written in C, requiring a timer set to 3 times// the baud rate, and two software read/write pins for the receive and// transmit functions.//// * Received characters are buffered// * putchar(), getchar(), kbhit() and flush_input_buffer() are available// * There is a facility for background processing while waiting for input//// Colin Gittins, Software Engineer, Halliburton Energy Services//// The baud rate can be configured by changing the BAUD_RATE macro as// follows://// #define BAUD_RATE 19200.0//// The function init_uart() must be called before any comms can take place//// Interface routines required:// 1. get_rx_pin_status()// Returns 0 or 1 dependent on whether the receive pin is high or low.// 2. set_tx_pin_high()// Sets the transmit pin to the high state.// 3. set_tx_pin_low()// Sets the transmit pin to the low state.// 4. idle()// Background functions to execute while waiting for input.// 5. timer_set( BAUD_RATE )// Sets the timer to 3 times the baud rate.// 6. set_timer_interrupt( timer_isr )// Enables the timer interrupt.//// Functions provided:// 1. void flush_input_buffer( void )// Clears the contents of the input buffer.// 2. char kbhit( void )// Tests whether an input character has been received.// 3. char getchar( void )// Reads a character from the input buffer, waiting if necessary.// 4. void turn_rx_on( void )// Turns on the receive function.// 5. void turn_rx_off( void )// Turns off the receive function.// 6. void putchar( char )// Writes a character to the serial port.#i nclude stdio.h#define BAUD_RATE 19200.0#define IN_BUF_SIZE 256#define TRUE 1#define FALSE 0static unsigned char inbuf[IN_BUF_SIZE];static unsigned char qin = 0;static unsigned char qout = 0;static char flag_rx_waiting_for_stop_bit;static char flag_rx_off;static char rx_mask;st
文档评论(0)