谢谢~~你说的非常正确~这个问题我已经搞定,现在和大家分享一下~
官方有两个例程,先说第一个
usart_basic_usel例程
int main(void)
{
system_init();
configure_usart(); //波特率9600
uint8_t string[] = "Hello World!\r\n";
usart_write_buffer_wait(&usart_instance, string, sizeof(string));
uint16_t temp;
usart_disable(&usart_instance); //先disable
configure_usart1(); //再配置新参数,波特率115200
while (true) {
if (usart_read_wait(&usart_instance, &temp) == STATUS_OK) {
while (usart_write_wait(&usart_instance, temp) != STATUS_OK) {
}
}
}
}
第二个例程,callback函数
int main(void)
{
system_init();
delay_init();
configure_usart();
configure_usart_callbacks();
system_interrupt_enable_global();
uint8_t string[] = "Hello World!\r\n";
usart_write_buffer_wait(&usart_instance, string, sizeof(string));
usart_unregister_callback(&usart_instance, USART_CALLBACK_BUFFER_TRANSMITTED);
usart_unregister_callback(&usart_instance, USART_CALLBACK_BUFFER_RECEIVED);
usart_disable_callback(&usart_instance, USART_CALLBACK_BUFFER_TRANSMITTED);
usart_disable_callback(&usart_instance, USART_CALLBACK_BUFFER_RECEIVED);
usart_disable(&usart_instance);
configure_usarta();
configure_usart_callbacks();
delay_s(5);
usart_write_buffer_wait(&usart_instance, string, sizeof(string));
usart_write_buffer_wait(&usart_instance, string, sizeof(string));
usart_write_buffer_wait(&usart_instance, string, sizeof(string));
while (true) {
usart_read_buffer_job(&usart_instance,
(uint8_t *)rx_buffer, MAX_RX_BUFFER_LENGTH);
}
}
我一直纠结于callback函数的例程,没有想到将callback函数也disable掉,再config usart->enable usart->enable callback,大家可以作为参考,哈哈~
|