串口是最常用的外设之一,本次实验使用debug串口1,mcc配置如下:
main.c函数如下,依据mcc生成的文件uart1.h来编写,里面详细介绍了api的使用,非常nice。
- /**
- Generated Main Source File
- Company:
- Microchip Technology Inc.
- File Name:
- main.c
- Summary:
- This is the main file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs
- Description:
- This header file provides implementations for driver APIs for all modules selected in the GUI.
- Generation Information :
- Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.7
- Device : PIC18F16Q40
- Driver Version : 2.00
- */
- /*
- (c) 2018 Microchip Technology Inc. and its subsidiaries.
-
- Subject to your compliance with these terms, you may use Microchip software and any
- derivatives exclusively with Microchip products. It is your responsibility to comply with third party
- license terms applicable to your use of third party software (including open source software) that
- may accompany Microchip software.
-
- THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER
- EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY
- IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS
- FOR A PARTICULAR PURPOSE.
-
- IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
- INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND
- WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP
- HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO
- THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL
- CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT
- OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS
- SOFTWARE.
- */
- #include "mcc_generated_files/mcc.h"
- /*
- Main application
- */
- uint8_t r;
- void main(void)
- {
- // Initialize the device
- SYSTEM_Initialize();
- // If using interrupts in PIC18 High/Low Priority Mode you need to enable the Global High and Low Interrupts
- // If using interrupts in PIC Mid-Range Compatibility Mode you need to enable the Global Interrupts
- // Use the following macros to:
- // Enable the Global Interrupts
- //INTERRUPT_GlobalInterruptEnable();
- // Disable the Global Interrupts
- //INTERRUPT_GlobalInterruptDisable();
- while (1)
- {
- do
- {
- if(UART1_is_rx_ready())
- {
- r = UART1_Read();
- if(UART1_is_tx_ready())
- {
- UART1_Write(r);
- }
- }
- }while(UART1_DataReady);
- }
- }
- /**
- End of File
- */
测试结果:
测试工程源码:
|